【问题标题】:Count combined with select distinct计数与选择不同
【发布时间】:2017-06-30 03:35:13
【问题描述】:

实际上,我试图找到一种方法来从表中选择所有不同的私人消息,并在 1 个 sql 查询中获得每个消息的计数

实际的表有一个包含成员 id 的列,还有一个列 当消息状态 = 0 时,消息的实际视图状态意味着 没读过

表格中的数据示例

罗杰 0 保罗 1 罗杰 0 保罗 0 迈克 0 迈克 0 迈克 0

那么我想要的结果就是

罗杰 2 保罗 1 迈克 3

任何帮助将不胜感激

【问题讨论】:

  • 您使用的是哪个DBMS?后格雷斯?甲骨文?
  • 嗯,老实说我不知道​​我用的是 mysql,我想

标签: sql select count


【解决方案1】:

你在找这个吗?

SELECT member_id, COUNT(*) AS count
  FROM messages
 WHERE state = 0
 GROUP BY member_id

这是一个dbfiddle 演示


我还需要从另一个表中选择与 member_id 匹配的所有字段,这在 1 个查询中是可能的

当然,JOIN 离开

SELECT m.*, t.*
  FROM (
    SELECT member_id, COUNT(*) AS count
      FROM messages
     WHERE state = 0
     GROUP BY member_id
) m JOIN other_table t
    ON m.member_id = t.member_id

【讨论】:

  • 谢谢,但我忘记了问题中的 1 个参数,非常抱歉,我还需要从另一个表中选择与 member_id 匹配的所有字段,这可能在 1 个查询中吗?让我们调用其他表用户
  • 查看更新后的答案,以后不要忘记在您的问题中包含所有重要细节 :)
  • 我能问你这比做一个子查询好吗?实际上我认为它是但只是想确定因为我的子查询在我有 10 000 个日志时运行了 10 000 次
猜你喜欢
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多