mysql - Mysql DISTINCT 和 count if

标签 mysql sql distinct

我有一张 table :

enter image description here

我想编写一个查询来为特定用户显示唯一的 Adid:

SELECT DISTINCT Adid FROM Message WHERE (MesFrom =1 OR MesTo = 1) AND (MesFrom =2 OR MesTo = 2) ORDER BY ID DESC

这工作正常

但现在我想添加新消息的数量,所以我需要类似的东西

SELECT Count(IF(New=1,1,0)) AS countNew FROM Message

但需要结合前面的查询

输出必须是这样的:

43 新 3 44 新 1

请帮忙!)

最佳答案

尝试

SELECT Adid, SUM(New = 1) new
  FROM Message 
 WHERE (MesFrom = 1 OR MesTo = 1) 
   AND (MesFrom = 2 OR MesTo = 2) 
 GROUP BY Adid

输出:

| ADID | NEW |
|------|-----|
|   42 |   2 |
|   43 |   3 |
|   44 |   1 |

这是 SQLFiddle 演示

关于mysql - Mysql DISTINCT 和 count if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172900/

相关文章:

java - 第 1 行 ' ' x')' 附近的 SQL 语法错误(插入语句)

mysql - Rails 连接表问题

sql - PL/SQL - 防止 ORA-06502

r - 在 R 中仅按组保存最后一个重复项

mysql - 尝试利用azure windows 2012 R2虚拟机mysql但无法访问它

mysql - mysql 分区表上的索引

sql - 计算最近时间的优雅方法

php - 需要第二只眼睛来调试查询

php - 如何使用 INNER JOIN 为每个用户获取 1 行

MySQL:跨多个表选择不同并按日期时间排序