假设我们有这个查询
SELECT * FROM table
这是它的结果。
id | user_id
------------
1 | 1
------------
2 | 1
------------
3 | 2
------------
4 | 1
我如何得到user_id作为另一个字段出现的频率计数(没有一些主要的SQL查询)
id | user_id | count
--------------------
1 | 1 | 3
--------------------
2 | 1 | 3
--------------------
3 | 2 | 1
--------------------
4 | 1 | 3
我们目前在代码中有这个值,但我们正在对此表实现排序,我希望能够在SQL查询中进行排序。
顺便说一句,如果没有一些主要技巧,这是不可能的,我们只是跳过那个领域的排序。
答案 0 :(得分:3)
我只想在最后添加一个子查询,我相信:
SELECT
t.id,
t.user_id,
(SELECT COUNT(*) FROM table WHERE user_id = t.user_id) AS `count`
FROM table t;
答案 1 :(得分:0)
SELECT o.id, o.user_id, (
SELECT COUNT(id)
FROM table i
WHERE i.user_id = o.user_id
GROUP BY i.user_id
) AS `count`
FROM table o
我怀疑这个查询不是一个表演怪物,但它应该有效。