汇总只在一列上,但在mysql中的多个列上的groupby

时间:2017-05-15 13:37:32

标签: mysql

这只是一个简单的要求 - 我想在多个列上使用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结束,但由于两个列上的该组有汇总,最后仍有两个令人困惑的行。

0 个答案:

没有答案