我想显示最高编号。剧集
i want to display highest no. of episodes
我有以下代码
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID)
我试过添加
HAVING COUNT(EPISODES.PRESENTERID) > 2
但我不得不假装没看到有多少没有。情节是 there.is 还有其他方式我可以显示没有更多的行。剧集?
如果你只想要剧集数最多的行,你可以在查询的末尾添加这个(并删除 HAVING
,这是无用的):
ORDER BY `no. of episodes` DESC
LIMIT 1
思路:对行进行排序,使集数最多的记录位于顶部,然后将结果限制为特定数量(此处为 1)。
您错过的是 DESC
关键字,因为默认情况下按从低到高排序(ASC
,升序)。
您不需要 having
,您只需要 order by COUNT(EPISODES.PRESENTERID) DESC
,这应该让您从高到低
select top 1 PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,COUNT(EPISODES.PRESENTERID) AS "no. of episodes" FROM EPISODES JOIN PRESENTERS ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME ORDER BY COUNT(EPISODES.PRESENTERID) desc;
默认情况下 MySQL 按升序对行进行排序。你需要明确告诉它按降序排序。
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID) DESC;
以上将为您提供降序或下方的所有行,但是如果您只想要最高计数为 episodes
的一行,您可以只执行 limit 1
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID) DESC LIMIT 1;
只需将 DESC
附加到您当前的查询,就可以了!
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME, COUNT(EPISODES.PRESENTERID) AS [no. of episodes]
FROM EPISODES INNER JOIN
PRESENTERS ON EPISODES.PRESENTERID = PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY [no. of episodes] DESC
期望的输出:
至 select 前 1 名:
SELECT TOP (1) PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME, COUNT(EPISODES.PRESENTERID) AS [no. of episodes]
FROM EPISODES INNER JOIN
PRESENTERS ON EPISODES.PRESENTERID = PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY [no. of episodes] DESC
我有以下代码
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID)
我试过添加
HAVING COUNT(EPISODES.PRESENTERID) > 2
但我不得不假装没看到有多少没有。情节是 there.is 还有其他方式我可以显示没有更多的行。剧集?
如果你只想要剧集数最多的行,你可以在查询的末尾添加这个(并删除 HAVING
,这是无用的):
ORDER BY `no. of episodes` DESC
LIMIT 1
思路:对行进行排序,使集数最多的记录位于顶部,然后将结果限制为特定数量(此处为 1)。
您错过的是 DESC
关键字,因为默认情况下按从低到高排序(ASC
,升序)。
您不需要 having
,您只需要 order by COUNT(EPISODES.PRESENTERID) DESC
,这应该让您从高到低
select top 1 PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,COUNT(EPISODES.PRESENTERID) AS "no. of episodes" FROM EPISODES JOIN PRESENTERS ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME ORDER BY COUNT(EPISODES.PRESENTERID) desc;
默认情况下 MySQL 按升序对行进行排序。你需要明确告诉它按降序排序。
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID) DESC;
以上将为您提供降序或下方的所有行,但是如果您只想要最高计数为 episodes
的一行,您可以只执行 limit 1
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME,
COUNT(EPISODES.PRESENTERID) AS "no. of episodes"
FROM EPISODES
JOIN PRESENTERS
ON EPISODES.PRESENTERID=PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY COUNT(EPISODES.PRESENTERID) DESC LIMIT 1;
只需将 DESC
附加到您当前的查询,就可以了!
SELECT PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME, COUNT(EPISODES.PRESENTERID) AS [no. of episodes]
FROM EPISODES INNER JOIN
PRESENTERS ON EPISODES.PRESENTERID = PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY [no. of episodes] DESC
期望的输出:
至 select 前 1 名:
SELECT TOP (1) PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME, COUNT(EPISODES.PRESENTERID) AS [no. of episodes]
FROM EPISODES INNER JOIN
PRESENTERS ON EPISODES.PRESENTERID = PRESENTERS.PRESENTERID
GROUP BY PRESENTERS.PNRFNAME, PRESENTERS.PNRLNAME
ORDER BY [no. of episodes] DESC