当前位置: 首页 > 知识库问答 >
问题:

如何在Snowflake中执行Pivot(Count(*))功能

陆伟
2023-03-14

我的查询如下:

我得到一个错误“意外的'*'”。在第6行,请让我知道,如何重写或更正这个问题

select * from (SELECT gl gl_acc,
                               reg reg,
                               mapp map_name,
                               field as f1
                          FROM gl_acc a
                         WHERE TYPE = 'AGG') PIVOT (count(*)
                                             FOR f1
                                             IN  (
                                                 'JOURN' ,
                                                 'JOU' ,
                                                 'J' ,
                                                 'CASE_' ,
                                                 'JOUR' 
                                                ))as p;

谢谢,去吧

共有1个答案

邵凯定
2023-03-14

只需使用条件聚合:

SELECT gl, reg, mapp,
       SUM(CASE WHEN field = 'JOURN' THEN 1 ELSE 0 END) as journ,
       SUM(CASE WHEN field = 'JOU' THEN 1 ELSE 0 END) as jou,
       SUM(CASE WHEN field = 'J' THEN 1 ELSE 0 END) as j,
       SUM(CASE WHEN field = 'CASE_' THEN 1 ELSE 0 END) as case_,
       SUM(CASE WHEN field = 'JOUR' THEN 1 ELSE 0 END) as jour       
FROM gl_acc a
WHERE TYPE = 'AGG'
GROUP BY gl, reg, mapp;

或者更简单地使用count_if()

SELECT gl, reg, mapp,
       COUNT_IF(field = 'JOURN') as journ,
       COUNT_IF(field = 'JOU') as jou,
       COUNT_IF(field = 'J') as j,
       COUNT_IF(field = 'CASE_') as case_,
       COUNT_IF(field = 'JOUR') as jour       
FROM gl_acc a
WHERE TYPE = 'AGG'
GROUP BY gl, reg, mapp;
 类似资料:
  • 问题内容: 我已经编写了一个关于SO文档的示例,但是由于该文档将于2017年8月8日关闭,因此,我将遵循这一广受好评和讨论的元答案的建议,并将我的示例转换为自回答的帖子。 当然,我也很高兴看到任何其他方法!! 题: 假设模型: 如何使用Django ORM在该模型上执行以下查询: GROUP BY … COUNT: GROUP BY … SUM: 问题答案: 我们可以进行一个或者一个在Django

  • 所以我不知道如何让桌子在雪花中旋转。我试图在这里为帮助页面建模https://docs.snowflake.com/en/sql-reference/constructs/pivot.html。 枢轴输出 sql文本:

  • 问题内容: 情况: 我正在AngularJs中制作一个分配权限的应用程序。为了做到这一点,我有三个嵌套的ng-repeat。 第一循环 :显示PERMISSION GROUP 第二个循环 :对于每个权限组,显示“类别”。在此循环内执行一个函数,该函数将获取每个类别的所有子类别 第三循环 :显示子类别 问题: 问题在于第二个循环内函数的执行。 尝试1-ng-init: 在控制器中: 行为很奇怪。可能

  • 问题内容: 我正在开发php / javascript聊天。 用户登录时,其用户名将插入名为的MySQL表中。此插入返回将存储在称为 当用户关闭页面时,我需要删除MySQL表行。 我尝试了以下方法,但没有成功: js文件 chat.php 有什么办法吗? 问题答案: 您触发ajax异步(jQuery的默认设置-ajax)。但是浏览器不会等待任何卸载。 尝试在ajax 设置中进行设置。但是,您永远无

  • 我在src/test/resources/feature/中有以下功能文件(单独的功能文件),我想并行运行它们。比如:一个功能文件必须在chrome中执行,另一个必须在另一个chrome实例中执行,如@Tags name所述。 我正在使用Java1.2。5版本,AbstractTestNGCucumberTests作为runner。我可以运行一个功能文件,但当我尝试使用cucumber jvm并行

  • 问题内容: 我目前有使用PIVOT生成如下表的查询: 我想做的是,但看起来像是拉伸,结果是值递减。 这是查询: 这样做会产生错误,因此可以指定列吗? 问题答案: 试试这个: