-1
最小值考慮以下數據庫設置:發現PostgreSQL中
CREATE TABLE ClassStud (
uname varchar(10) NOT NULL,
classcode varchar(7) NOT NULL,
grnr varchar(8),
sem varchar(6) NOT NULL
);
INSERT INTO ClassStud(uname,classcode, grnr,sem) VALUES ('oscali', 'inf1000', 'group1', '2013-2');
INSERT INTO ClassStud(uname,classcode, grnr,sem) VALUES ('oscali', 'inf1300', 'group2', '2013-2');
INSERT INTO ClassStud(uname,classcode, grnr,sem) VALUES ('axelboi', 'inf1100', 'group3', '2013-2');
INSERT INTO ClassStud(uname,classcode, grnr,sem) VALUES ('fredrbhe', 'inf2100', 'group2', '2013-2');
INSERT INTO ClassStud(uname,classcode, grnr,sem) VALUES ('vetleoj', 'inf2200', 'group6', 2013-2');
隨着UNAME是用戶名,grnr是groupnumber和SEM作爲學期。
我想弄清楚的是如何找到成員數量最少的組(無論課程/課程)。我一直堅持這個問題幾個小時,甚至搜索網絡,我沒有找到太多的幫助或引導我在正確的方向。
我嘗試了這種方式
SELECT classcode, grnr, COUNT(uname) AS students_in_group
FROM ClassStud
WHERE grnr is NOT NULL
AND sem LIKE '2013-2'
GROUP BY classcode, grnr
HAVING MIN(students_in_group);
,但我得到一個錯誤說students_in_group不存在。 我也嘗試過使用子查詢,並且在SELECT中輸入MIN()沒有運氣。
SELECT classcode, grnr, MIN(students)
FROM (
SELECT count(uname) AS students FROM ClassStud) AS s, ClassStud
WHERE grnr IS NOT null
AND sem LIKE '2013-2'
GROUP BY classcode, grnr;
這裏的問題是它是一個VARCHAR我需要計數,而不是一個整數。
編輯:忘了補充說查詢/搜索應該只顯示最小的組。這是真正的問題。我也嘗試創建一個與所有組的視圖,然後要求最小的一個,但由於某種原因,它最終打印整個視圖。
對不起,我忘了補充一點,查詢只顯示最小的組。 –
只需在查詢的末尾添加「LIMIT 1」即可。 'ORDER BY'完成排序工作,然後將輸出限制爲第一條記錄。 – BWS
omg,哈哈。現在我感到很蠢! TY非常! –