我正在使用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的值求和.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。