【问题标题】:Count(*) allow group by nullCount(*) 允许按 null 分组
【发布时间】:2012-06-17 21:55:08
【问题描述】:

我有以下疑问:

select count(*) as memo_count, student_id from memo group by student_id

返回以下结果集:

memo_count        student_id
3                 0
8                 1

但是,我真正希望它返回的是:

memo_count        student_id
3                 0
8                 1
0                 2

正在发生的事情是,Group By 正在过滤掉任何返回 0 的 count(*),这不是我想要的。有什么办法吗?谢谢。

【问题讨论】:

  • 如果它返回 0,则意味着该表中不存在 student_id。您是否有另一张 student_id 表要左连接以返回所有这些表?
  • 它无法计算不存在的事物...您要为每个学生创建一个记录吗?
  • 糟糕,我犯了一个愚蠢的错误,你是对的迈克尔,备忘录表中没有任何 2 的 student_id,这就是它不起作用的原因,我已经解决了问题,谢谢!

标签: mysql sql


【解决方案1】:

你可以试试这样的东西。假设你有一张学生桌......

Select count(m.id), s.id from student s 
 left outer join memo m on m.student_id = s.id 
 group by s.id 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2010-12-18
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多