oracle – Group By没有正确分组
发布时间:2021-02-05 15:48:25 所属栏目:百科 来源:网络整理
导读:我正在使用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) (编辑:天津站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐