首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GROUP BY CASE语句输出

GROUP BY CASE语句输出
EN

Stack Overflow用户
提问于 2013-01-09 05:35:09
回答 1查看 256关注 0票数 0

我如何更改下面的脚本,这样我就可以按YR,QTR,QTR_PCT给出的值进行分组,以获得我想要的输出?

代码语言:javascript
运行
AI代码解释
复制
CREATE VIEW REPORTS.MY_VIEW
(YR, QTR, QTR_PCT, CODE)
AS 
SELECT YR, QTR
, CASE WHEN PCTPERF>=85 THEN ROUND(AVG(PCTPERF)) 
  ELSE NULL
  END QTR_PCT
, CODE
FROM ANOTHER_VIEW
GROUP BY YR, QTR, PCTPERF, CODE
ORDER BY CODE ASC;

实际输出:(我没有包含列QTR_PCT)

代码语言:javascript
运行
AI代码解释
复制
+------+-----+------+
|   YR | QTR | CODE |
+------+-----+------+
| 2012 |   1 | 1039 | 
| 2012 |   1 | 1039 | 
| 2012 |   1 | 1039 |
| 2012 |   2 | 1039 | 
| 2012 |   2 | 1039 | 
| 2012 |   2 | 1039 |  
+------+-----+------+

期望的输出:(我没有包含列QTR_PCT)

代码语言:javascript
运行
AI代码解释
复制
+------+-----+------+
|   YR | QTR | CODE |
+------+-----+------+
| 2012 |   1 | 1039 | 
| 2012 |   2 | 1039 | 
+------+-----+------+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-09 06:11:36

我不确定我是否理解了你的问题,但这可能会有所帮助,试试:

代码语言:javascript
运行
AI代码解释
复制
SELECT YR, qtr, code,max(qtr_pct)  aa
FROM (
SELECT YR, qtr, code, pctref,  CASE WHEN pctref >= 85 THEN round(avg(pctref) over (partition BY YEAR, qtr, code))
  ELSE NULL END qtr_pct
FROM ANOTHER_VIEW) t
GROUP BY YR, qtr, code;

Here is a sqlfiddle demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14228859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档