加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门站长网 (https://www.0592zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – Group By没有正确分组

发布时间:2021-02-06 20:41:32 所属栏目:百科 来源:网络整理
导读:我正在使用oracle,它的group by子句似乎与我期望的行为非常不同. 使用此查询时: SELECT stats.gds_id,stats.stat_date,SUM(stats.A_BOOKINGS_NBR) as "Bookings",SUM(stats.RESPONSES_LESS_1_NBR) as "1",SUM(stats.RESPONSES_LESS_2_NBR) AS "2",SUM(STA

我正在使用oracle,它的group by子句似乎与我期望的行为非常不同.

使用此查询时:

SELECT stats.gds_id,stats.stat_date,SUM(stats.A_BOOKINGS_NBR) as "Bookings",SUM(stats.RESPONSES_LESS_1_NBR) as "<1",SUM(stats.RESPONSES_LESS_2_NBR) AS "<2",SUM(STATS.RESPONSES_LESS_3_NBR) AS "<3",SUM(stats.RESPONSES_LESS_4_NBR) AS "<4",SUM(stats.RESPONSES_LESS_5_NBR) AS "<5",SUM(stats.RESPONSES_LESS_6_NBR + stats.RESPONSES_LESS_7_NBR + stats.RESPONSES_GREATER_7_NBR) AS ">5",SUM(stats.RESPONSES_LESS_6_NBR) AS "<6",SUM(stats.RESPONSES_LESS_7_NBR) AS "<7",SUM(stats.RESPONSES_GREATER_7_NBR) AS ">7",SUM(stats.RESPONSES_LESS_1_NBR + stats.RESPONSES_LESS_2_NBR + stats.RESPONSES_LESS_3_NBR + stats.RESPONSES_LESS_4_NBR + stats.RESPONSES_LESS_5_NBR + stats.RESPONSES_LESS_6_NBR + stats.RESPONSES_LESS_7_NBR + stats.RESPONSES_GREATER_7_NBR) as "Total"
FROM gwydb.statistics stats
WHERE stats.stat_date >= '01-JUN-2011'
GROUP BY stats.gds_id,stats.stat_date

我得到这样的结果:

GDS_ID  STAT_DATE   Bookings    <1      <2  <3  <4  <5  >5  <6  <7  >7  Total    
02      12-JUN-11   0           1       0   0   0   0   0   0   0   0   1
1A      01-JUN-11   15          831     52  6   2   2   4   1   1   2   897
1A      01-JUN-11   15          758     59  8   1   1   5   2   1   2   832
1A      01-JUN-11   10          593     40  2   2   1   2   1   0   1   640
1A      01-JUN-11   12          678     40  10  5   2   3   1   0   2   738
1A      01-JUN-11   24          612     56  6   1   3   4   0   0   4   682
1A      01-JUN-11   23          552     37  7   1   1   2   0   1   1   600
1A      01-JUN-11   35          1147    132 13  6   0   8   0   2   6   1306
1A      01-JUN-11   91          2331    114 14  5   1   14  3   1   10  2479

如您所见,我每个GDS_ID有多个重复的STAT_DATE.为什么会这样,我怎样才能将它们组合在一起呢? I.E.对每个STAT_DATE的每个GDS_ID的值求和.

解决方法

可能是因为STAT_DATE有一个时间组件,它在GROUP BY中被考虑在内但由于默认格式掩码而未显示在结果中.要忽略时间,请执行以下操作:

SELECT stats.gds_id,TRUNC(stats.stat_date) stat_date,TRUNC(stats.stat_date)

(编辑:厦门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!