我有下表:
A FromA User
1 NULL Bob
2 1 Bob
3 1 Chris
4 2 Chris
用户是创建项目A的人员的姓名.IndoA是用户从中获取的来源。
我想弄明白是克里斯最频繁的来源。
我的查询
SELECT count(T1.A GROUP BY T1.User), T1.User
FROM Table T0
INNER JOIN Table T1 ON T0.FromA=T1.A
WHERE T0.User='Chris'
它应该返回Bob=2
。但它似乎没有用。
答案 0 :(得分:1)
你只是在错误的地方找到你的小组。这应该工作
SELECT count(T1.A ), T1.User
FROM Table T0
INNER JOIN Table T1 ON T0.FromA=T1.A
WHERE T0.User='Chris'
GROUP BY T1.User
答案 1 :(得分:1)
试试这个:
select t2.user, count(*) Total from t t1
join t t2 on t1.fromA = t2.a
where t1.user = 'Chris'
group by t2.user
order by Total desc
limit 1
limit 1
会为您提供最常用的来源。
修改强>
内部联接将无法获取记录=> 1 | NULL | Bob作为'fromA'列具有空值。所以,切换到左连接--Angelin Nadar
不。这是working example
答案 2 :(得分:1)
试试这个,我更改了表别名:
SELECT count(*), t_User.User
FROM
Table t_FromA
LEFT OUTER JOIN
Table t_User
ON t_User.FromA=t_FromA.A
WHERE t_FromA.User='Chris'