jud*_*ead 2 sql oracle select count
我有一张桌子,基本上是这样设置的:
Question | Category
=========|=========
Who? |Vague
What? |Vague
When? |Specific
Why? |Specific
How? |Specific
Run Code Online (Sandbox Code Playgroud)
我想选择所有问题,但我也想返回与当前选择的条目属于同一类别的条目数量,如下所示:
Question | Category | Count
=========|==========|======
Who? |Vague |2
What? |Vague |2
When? |Specific |3
Why? |Specific |3
How? |Specific |3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
在 Oracle(和大多数其他数据库)中,您只需使用分析函数:
select t.*, count(*) over (partition by category) as cnt
from t;
Run Code Online (Sandbox Code Playgroud)
在 MySQL 中,相关子查询可能是最好的方法:
select t.*, (select count(*) from t t2 where t2.category = t.category) as cnt
from t;
Run Code Online (Sandbox Code Playgroud)