这只是一个简单的要求 - 我想在多个列上使用group by,但汇总的结果应仅针对该列而不是所有其他列。
select if( b.name is null,'--NO BOARD--',b.name) board, count(u.id)
from Usernow u
join School s on (s.id =u.id)
left join PreviousBoard b on (b.id= s.board )
where u.autoRegistered = 0
and u.createTime between :d_startDate and :d_endDate
group by 1,2 with rollup;
这会在汇总行之外创建不必要的行。
可以使用group by?
以更有效的方式使用汇总提前致谢!
class_no class count(u.id)
1 CBSE -2 UKG 3
2 CBSE -3 LKG 5
3 CBSE -4 Nursery 4
4 CBSE 1 I 577
5 CBSE 10 X 196
6 CBSE 11 XI 45
7 CBSE 12 XII 33
8 CBSE 2 II 211
9 CBSE 3 III 126
10 CBSE 4 IV 128
11 CBSE 5 V 128
12 CBSE 6 VI 170
13 CBSE 7 VII 243
14 CBSE 8 VIII121
15 CBSE 9 IX 18
16 CBSE IX 2008
17 IX 2008
看看结果只在15结束,但由于两个列上的该组有汇总,最后仍有两个令人困惑的行。