mysql - SQL 查询中的列计数

标签 mysql sql

我想将 COUNT(item_id) 放入此语句中:

SELECT * FROM `notifications` WHERE `uid` = '3' AND `seen` = '0' AND id IN (
SELECT MAX(id), COUNT(item_id)
FROM `notifications`
GROUP BY item_id
)  ORDER BY id DESC

但是发生了此错误:操作数应包含 1 列。

表:

[id] [uid] [item_id] [seen]
 1     3       69       0
 2     3       69       0
 3     3       70       0
 4     3       69       0
 5     3       70       0
 6     3       69       0

预期输出:(Order BY id DESC),其中69是最后一条记录。

[item_id] [num]
    69      4
    70      2

最佳答案

鉴于您的示例数据和预期结果,不需要子查询:

select item_id, count(*)
from notifications
group by item_id
where uid = 3 and seen = 0
order by max(id) desc;

关于mysql - SQL 查询中的列计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767573/

相关文章:

mysql - 我想在 Mysql 的 AVG 函数中使用 select 语句中的字段

php - 查询始终返回特定行

python - 为什么在 SqlAlchemy 中使用 "db.*"?

mysql - 如何通过powershell将一个查询的结果插入到另一个数据库

sql - 需要一个sql查询

mysql - 使用 apache 网络服务器从 perl 连接到 mysql?

php - 如何合并此分类帐上的日期?

php - 如何检查未选择任何查询?

java - 使用Hibernate按主键和分区键级联删除

sql - 将唯一列添加到现有的 sql 数据库