在输出中获得特定结果

时间:2013-11-28 03:53:51

标签: mysql sql sqlite

嘿,大家希望你能帮我解决2个关于sql的快速问题。

假设我有一张桌子:

  Sports:
  Soccer
  Basketball
  Nothing

现在一群10人可以选择他们喜欢的运动!然后使用以下命令记录在表中:

SELECT count(sports)
FROM peoplewhovotedinsports s
GROUP BY sports

将按照每个运动参加人数的顺序给我一个统计数据 例如:

5(足球)

4(篮球)

1(无)

现在足球应该是那个出现的球员,但是,为了让足球能够让我获得最高级别的运动选择,我会输入什么?

对于前: 问题已经解决了!!

其中只列出了人员名称及其所属内容,但个别行如下:        JOEY体育        JOEY Tech        汤姆体育

任何帮助将不胜感激

2 个答案:

答案 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

在第一个上,您可以使用LIMITORDER BY

SELECT sports, count(*) as TopSports
FROM peoplewhovotedinsports
GROUP BY sports
ORDER BY count(*) DESC
LIMIT 1