首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL查询中的列计数

SQL查询中的列计数
EN

Stack Overflow用户
提问于 2018-06-09 03:51:57
回答 2查看 54关注 0票数 0

我想把COUNT(item_id)放在这条语句中:

代码语言:javascript
复制
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列。

表:

代码语言:javascript
复制
[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

预期输出:(按id排序),其中69是最后一条记录。

代码语言:javascript
复制
[item_id] [num]
    69      4
    70      2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-09 04:09:51

给定样本数据和预期结果,不需要使用子查询:

代码语言:javascript
复制
select item_id, count(*)
from notifications
group by item_id
where uid = 3 and seen = 0
order by max(id) desc;

票数 1
EN

Stack Overflow用户

发布于 2018-06-09 04:00:00

有根据的猜测是您想要一个JOIN

代码语言:javascript
复制
SELECT n.*, nmax.cnt
FROM notifications n JOIN
     (SELECT item_id,  MAX(id) as max_id, COUNT(item_id) as cnt
      FROM notifications
      GROUP BY item_id
     ) nmax
     ON n.item_id = nmax.item_id AND nmax.id = nmax.max_id
WHERE n.uid = 3 AND n.seen = 0  -- removed the single quotes because these are probably numbers
ORDER BY n.id DESC;

尚不清楚您是否也希望在子查询中包含过滤条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档