【发布时间】:2018-08-10 15:46:27
【问题描述】:
我在 SQL 中有一个表(使用 postgres),其中包含两列: videoid ,分类
videoid | classification
1 |20
1 |24
1 |24
1 |24
1 |24
2 |20
2 |20
2 |20
2 |20
2 |24
2 |24
3 |24
3 |24
我正在尝试检索最常见分类为 24 的所有 videoid。(答案应该只有 videoid 1 和 3) 当我使用查询时: (来自How to select most frequent value in a column per each id group?)
SELECT DISTINCT ON (videoid) videoid, most_frequent_species FROM (
SELECT videoid, classification AS most_frequent_species, count(*) as _count
FROM userviewed
GROUP BY videoid, classification) a
ORDER BY videoid, _count DESC
;
我检索结果集:
videoid | most_frequent_species
1 |24
2 |20
3 |24
但是当我尝试添加 WHERE 子句时:
WHERE classification = 24
我明白了:
videoid| most_frequent_species
1 |24
2 |24
3 |24
如何创建只检索的查询
videoid | most_frequent_species
1 |24
3 |24
【问题讨论】:
-
您可以将查询包装在子查询中并添加
WHERE most_frequent_species = 24 -
感谢 Giorgos 完美运行!
标签: sql postgresql