【问题标题】:Mysql SELECT and COUNT WHEREMysql SELECT 和 COUNT WHERE
【发布时间】:2014-01-16 16:42:08
【问题描述】:

我有两个表(我们称它们为案例和用户)的结构如下:案例

ID|status      |user_id
__|____________|_______  
1 |Open        |6
2 |Closed      |9
3 |Incomplete  |9

用户:

ID| 
__|_____
 6|
 9|

我想为 id 选择一个计数以及为每个状态字段选择一个计数。

目前我已经尝试过:

SELECT COUNT(c.id), COUNT(
(SELECT status from cases where status = 'Open')),
COUNT(
(SELECT status from cases where status = 'Closed')),
COUNT(
(SELECT status from cases where status = 'Incomplete'))
FROM cases as c
JOIN users as u on u.id = c.user_id

我收到查询返回多于一行的错误。

这就是我想要实现的目标

ID| Open | Closed | Incomplete |user_id
__|______|________|____________|__________
 2|0     |1       |1           |9

回顾:每个用户 id 的计数,用于计算 id 的数量,以及每个状态的计数。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以用sum试试这个

    SELECT COUNT(c.id), 
    SUM(c.status = 'Open') Open ,
    SUM(c.status = 'Closed') Closed ,
    SUM(c.status = 'Incomplete') Incomplete,
    u.id user_id
    FROM cases as c
    JOIN users as u on u.id = c.user_id
    GROUP BY u.id
    

    【讨论】:

    • 这似乎是一个合理的答案。很难说这是否真的回答了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    相关资源
    最近更新 更多