嘿,大家希望你能帮我解决2个关于sql的快速问题。
假设我有一张桌子:
Sports:
Soccer
Basketball
Nothing
现在一群10人可以选择他们喜欢的运动!然后使用以下命令记录在表中:
SELECT count(sports)
FROM peoplewhovotedinsports s
GROUP BY sports
将按照每个运动参加人数的顺序给我一个统计数据 例如:
5(足球)
4(篮球)
1(无)
现在足球应该是那个出现的球员,但是,为了让足球能够让我获得最高级别的运动选择,我会输入什么?
对于前: 问题已经解决了!!
其中只列出了人员名称及其所属内容,但个别行如下: JOEY体育 JOEY Tech 汤姆体育
任何帮助将不胜感激
答案 0 :(得分:0)
你可以尝试一下吗?
SELECT p.name, m.mags
FROM people p, peoplewhosub ms, magazines m
WHERE p.portid = ms.line and ms.service = m.scode
AND p.portid IN (
SELECT line
FROM peoplewhosub
GROUP BY line
HAVING COUNT(*) > 1
);
答案 1 :(得分:0)
对于订阅多个杂志的人使用HAVING()
:
SELECT p.name, COUNT(*) as NumberOfSubscription
FROM peoplewhosub ws
INNER JOIN people p
ON ws.line = p.portid
GROUP BY p.name
HAVING COUNT(*) > 1
在第一个上,您可以使用LIMIT
和ORDER BY
:
SELECT sports, count(*) as TopSports
FROM peoplewhovotedinsports
GROUP BY sports
ORDER BY count(*) DESC
LIMIT 1