你能帮我构建一个SQL查询吗?
例如我有这个表table
:
FK1 | FK2
1 | 1
1 | 2
1 | 3
1 | 4
1 | 1 (duplicated ID)
2 | 1
2 | 2
2 | 3
2 | 5
我希望所有FK1
行的FK2
组都有不同的FK1 | COUNT(FK2)
1 | 4 // (Distinct ID : 1, 2, 3, 4)
1 | 1 // (Distinct ID : 1)
2 | 4 // (Distinct ID : 1, 2, 3, 5)
行数,例如:
Duration
在SQL中可以吗?也许使用嵌套查询,我不知道......
感谢您的回答(我希望)
菲尔
答案 0 :(得分:0)
select fk1, rn, count(*)
from (select t.*,
(@rn := if(@fk2 = fk2, @rn + 1,
if(@fk2 := fk2, 1, 1)
)
) as rn
from t cross join
(select @fk2 := -1, @rn := 0) params
order by fk1, fk2
) t
group by fk1, rn;
至少,这会返回您指定的结果集。