SELECT DISTINCT T1.ID , COUNT(T2.OPT_ID)
FROM TABLE1 , TABLE2
WHERE T1.TRACK_ID = T2.TRACK_ID
GROUP BY T1.ID, T2.OPT_ID
输出:
ID (COLUMN1) OPT_ID(COLUMN 2)
1000000001082157827 132665
1000000001082157827 132564
1000000001082157827 117345
1000000001082157827 11565
1000000001082157827 124546
1000000001082157827 117495
1000000001082157827 11564
1000000001082157827 11564
1000000001082157827 117495
如果我计算T2.OPT_ID它只计算每个T1.ID 1,但如果我只计算t2.opt_id但是需要这两列,那也没关系。 结果应该是这样的
ID (COLUMN1) | OPT_ID(COLUMN 2)
000000001082157827 | 7
还有一些情况,OPT_ID有两个相同的id。我应该得到相同的总数(7不是9)
答案 0 :(得分:1)
对于当前数据集,以下查询应该为您提供结果
SELECT T1.ID , COUNT(*)
FROM TABLE1 T1 JOIN TABLE2 T2
ON T1.TRACK_ID = T2.TRACK_ID
GROUP BY T1.ID
在给定的示例中,您没有table2,我不确定table2如何影响结果集。如果您对任何特定列使用group by
,则无需再次为该列提供distinct
。两者都有相同的目的(考虑到性能时,Group by
优于distinct
。)
答案 1 :(得分:1)
尝试使用以下查询:
SELECT id ,(SELECT Sum(Count(*))
FROM t12 GROUP BY opt_id HAVING Count(*)=1) AS count1
FROM t12---change the table name
GROUP BY id;
答案 2 :(得分:0)
select t1.id,count(distinct t2.opt_id)
from table1,tabel2
where t1.track_id=t2.track_id
group by t1.id
我认为这可以解决您的问题。