我需要根据user_id他们根据borrow_id从表中的列中查找重复项
所以表格看起来像:
borrow_progress
+--------+-----------+------------+------------+
|user_id | borrow_id | state | remark |
+--------+-----------+------------+------------+
| 170 | 236 | 10 | waiting |
| 170 | 236 | 22 | proceed |
| 170 | 236 | 26 | success |
| 170 | 236 | 30 | sent |
| 172 | 237 | 10 | waiting |
| 172 | 237 | 22 | proceed |
| 172 | 237 | 90 | fail |
| 170 | 238 | 10 | waiting |
| 170 | 238 | 22 | proceed |
| 170 | 238 | 90 | fail |
| 173 | 239 | 10 | waiting |
| 173 | 239 | 22 | proceed |
| 173 | 239 | 26 | success |
| 170 | 240 | 10 | waiting |
| ... | ... | ... | ... |
+--------+-----------+------------+------------+
我的预期输出是:
1.
+--------+------------------+
|user_id | count(borrow_id) |
+--------+------------------+
| 170 | 3 |
| 172 | 1 |
| 173 | 1 |
+--------+------------------+
阿拉伯数字。
+--------+------------------+
|user_id | borrow_id |
+--------+------------------+
| 170 | 236 |
| 170 | 238 |
| 170 | 240 |
| 172 | 237 |
| 173 | 239 |
+--------+------------------+
您可以在此处使用DISTINCT
,用于两个查询:
SELECT
user_id,
COUNT(DISTINCT borrow_id) AS cnt
FROM borrow_progress
GROUP BY
user_id
ORDER BY
user_id;
和:
SELECT DISTINCT
user_id,
borrow_id
FROM borrow_progress
ORDER BY
user_id,
borrow_id;
我收集了这两个查询
select user_id, count(distinct borrow_id )
from borrow_progress
group by user_id
select user_id, borrow_id
from borrow_progress
group by user_id, borrow_id