我有這個SQL查詢,它給我一個不完整的結果(一半結果)。我想要從學生表中找到同一班級的所有學生信息,然後按班級分組。SQL GROUP BY和HAVING無法正常工作
這些查詢代碼:
SELECT first_name, last_name, username
FROM students
GROUP BY class
HAVING class IN(SS3);
SELECT first_name, last_name, class
FROM students
GROUP BY class
HAVING class = 'JSS1';
SELECT user_id, first_name, last_name, class, COUNT(*) AS total_students
FROM students
GROUP BY class
HAVING class IN ('JSS1')
最後一個查詢還顯示僅僅只有一個信息,這是第一個「jss1」班的學生在表名,但這次顯示,有17在jss1中的學生
如何操作查詢以顯示同一班級中所有學生的姓名?
這是表結構:
CREATE TABLE IF NOT EXISTS `students` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`class` varchar(10) NOT NULL,
`first_name` varchar(30) NOT NULL,
`last_name` varchar(50) NOT NULL,
`username` varchar(20) NOT NULL,
PRIMARY KEY (`user_id`)
)
一般的GROUP BY規則說:如果指定了GROUP BY子句,SELECT列表中的每個列引用必須標識一個分組列或者是一個set函數的參數! – jarlh
如果你想只顯示班級學生只是使用條件,而不使用GROUP BY –
好的......我會這樣做,但我只是認爲它會更好地使用GROUP BY和HAVING – manprogram