【发布时间】:2020-08-07 19:25:57
【问题描述】:
我有一个如下表,我想要的是使用每个 uid 组的 id 最少的初始行。
表格如下
_id uid type
1 a a
2 b bbb #satisfied
3 b ccc
4 b aaa #satisfied
5 a aaa #satisfied
6 b eee
我已经可以使用以下相关子查询获取初始行
SELECT *
FROM table
WHERE _id IN (
SELECT MIN(_id)
FROM table
WHERE type IN ('aaa','bbb')
GROUP BY uid
);
但是,我希望第 4 列显示满足条件 (type IN ('aaa','bbb')) 的行数,如下所示 cnt:
_id uid type cnt
5 a aaa 1
2 b bbb 2
我想我可以计算这个使用几个连接,然后将结果连接到我的代码中......但这很丑......有没有什么优雅的方法来实现这个......
【问题讨论】:
标签: mysql sql select group-by greatest-n-per-group