在没有 ORDER BY SQL MariaDB 的列中查找频率最低的值
Finding the least frequest value in a column WITHOUT ORDER BY SQL MariaDB
我有一个级别的注册学生架构,问题是我必须找到哪个级别的学生人数最少,这些学生属于“2000/01”年并且课程 ID 为 'G500' 但是,我无法使用 ORDER BY
或 LIMIT
。这是我能想到的最佳答案。
SELECT lvl
FROM enrl
WHERE ayr = '2000/01'
AND pid = 'G500'
GROUP BY lvl
ORDER BY Count(*) DESC;
WITH cte AS (
SELECT lvl, COUNT(*) as count
FROM enrl
WHERE ayr = '2000/01'
AND pid = 'G500'
GROUP BY lvl
)
SELECT t1.lvl FROM cte AS t1
LEFT OUTER JOIN cte AS t2 ON t1.count < t2.count
WHERE t2.count IS NULL;
我有一个级别的注册学生架构,问题是我必须找到哪个级别的学生人数最少,这些学生属于“2000/01”年并且课程 ID 为 'G500' 但是,我无法使用 ORDER BY
或 LIMIT
。这是我能想到的最佳答案。
SELECT lvl
FROM enrl
WHERE ayr = '2000/01'
AND pid = 'G500'
GROUP BY lvl
ORDER BY Count(*) DESC;
WITH cte AS (
SELECT lvl, COUNT(*) as count
FROM enrl
WHERE ayr = '2000/01'
AND pid = 'G500'
GROUP BY lvl
)
SELECT t1.lvl FROM cte AS t1
LEFT OUTER JOIN cte AS t2 ON t1.count < t2.count
WHERE t2.count IS NULL;