我想创建一个列,用于计算子查询中列的唯一字符串的出现次数。但是,我不想将结果分组。我需要所有原始行。我看到其他帖子以下列方式选择了计数。我得到错误代码1146,因为table_1在我的数据库中不存在,但来自子查询。有没有人知道另一种方法呢?
SELECT table_1.columnA
,table_1.columnB
,table_2.CountB
,
FROM (
SELECT sometable.stuff AS 'columnA'
,sometable.morestuff AS 'columnB'
FROM sometable
WHERE blah_blah_blah = blah
) table_1
,(
SELECT columnB
,count(columnB) AS 'CountB'
FROM table_1
) table_2
WHERE table_1.columnB = table_2.columnB
所需输出的示例:
columnA columnB CountB
1红3
2绿2
3蓝1
4绿2
5红3
6红3
答案 0 :(得分:0)
子查询需要按列b计数并连接回原始表:
select a.*, b.c
from table_1 a
join (
select columnB, count(*) c
from table_1
group by columnB) b on a.columnB = b.columnB;