我想group by
後算,而不是總線 只想按類別來算 group by
後,我的結果是一樣在SQL組後數由
course lecturer
comp1111 Jim
comp1100 Jim
comp1100 Jim
infs2321 Jess
infs2321 Jess
econ1222 Helen
我的結果後數應
lecturer count
Jim 3
Jess 2
Helen 1
我想group by
後算,而不是總線 只想按類別來算 group by
後,我的結果是一樣在SQL組後數由
course lecturer
comp1111 Jim
comp1100 Jim
comp1100 Jim
infs2321 Jess
infs2321 Jess
econ1222 Helen
我的結果後數應
lecturer count
Jim 3
Jess 2
Helen 1
我不明白你爲什麼想要一組由已分組之後。你只需要做一個小組即可得到你想要的結果。請看看這個sqlfiddle看它現場直播。
CREATE TABLE Table1
(`course` varchar(8), `lecturer` varchar(5))
;
INSERT INTO Table1
(`course`, `lecturer`)
VALUES
('comp1111', 'Jim'),
('comp1100', 'Jim'),
('comp1100', 'Jim'),
('infs2321', 'Jess'),
('infs2321', 'Jess'),
('econ1222', 'Helen')
;
select
lecturer, count(*)
from
Table1
group by lecturer desc;
| LECTURER | COUNT(*) |
-----------|----------|--
| Jim | 3 |
| Jess | 2 |
| Helen | 1 |
編輯:
你不需要額外的表。要獲得最大數量的行,你可以簡單地做
select
lecturer, count(*)
from
Table1
group by lecturer
order by count(*) desc
limit 1;
爲MySQL或
select top 1
lecturer, count(*)
from
Table1
group by lecturer
order by count(*) desc;
MS SQL Server的。在我的第一個答案我有GROUP BY lecturer DESC
這是一樣的GROUP BY lecturer ORDER BY COUNT(*) DESC
因爲在MySQL GROUP BY
暗示的ORDER BY
。
如果這不是你想要的,要小心使用MAX()
功能。當你只是做例如
select
lecturer, max(whatever)
from
Table1
group by lecturer;
你不一定會得到任何最大的行。
你也可以做
select
lecturer, max(whatever), min(whatever)
from
Table1
group by lecturer;
看到了嗎?您只需獲取函數返回的值,而不是屬於它的行。有關如何解決此問題的示例,請參閱manual entry。
我希望我到現在也沒迷惑你,這是比你想知道的可能更多,因爲上面是特別適合團體。我認爲你真正想要做的只是按照你想要的方式排列表格,然後選擇一行,就像上面提到的那樣。
試試這個。也許工作
SELECT LECTURER, COUNT(*)
FROM
(SELECT LECTURER, COURSE
FROM TABLE
WHERE
GROUP BY LECTURER, COURSE)
GROUP BY LECTURER;
嘗試這個命令在MySQL
============================
select
lecturer, count(*)
from
Course_detail
group by lecturer desc;
Ooohh喔所以當我由講師團隊統計(*)時,是否由不同的講師自動統計? –
是的,你得到每個不同的講師計數。 – fancyPants
非常感謝你。如果我想得到最多的那一排,那就是'吉姆3'。我不能使用MAX(直接COUNT(*)。做我必須創建然後另一個表從表1獲得? –