在MySQL中,我們經(jīng)常需要對數(shù)據(jù)進(jìn)行分組和排序。當(dāng)需要按照多個字段進(jìn)行分組時,我們可以使用多字段分組。而在分組內(nèi)進(jìn)行排序,則可以使用組內(nèi)排序。
多字段分組可以使用GROUP BY
關(guān)鍵字來實現(xiàn)。例如,我們想要按照category
和sub_category
兩個字段進(jìn)行分組:
SELECT category, sub_category, COUNT(*)
FROM table_name
GROUP BY category, sub_category;
在這個查詢語句中,COUNT(*)
表示每個組內(nèi)的行數(shù)(即每個分類的子分類數(shù)),GROUP BY category, sub_category
表示按照category
和sub_category
兩個字段進(jìn)行分組。
如果我們想在每個組內(nèi)按照另一個字段進(jìn)行排序,可以使用ORDER BY
關(guān)鍵字。例如,在上述例子中,如果我們想要按照每個子分類內(nèi)的數(shù)量進(jìn)行排序,可以使用以下查詢語句:
SELECT category, sub_category, COUNT(*)
FROM table_name
GROUP BY category, sub_category
ORDER BY COUNT(*) DESC;
在這個查詢語句中,ORDER BY COUNT(*) DESC
表示按照每個組內(nèi)的COUNT(*)
倒序排序,也就是數(shù)量從多到少排序。
需要注意的是,ORDER BY
關(guān)鍵字應(yīng)該放在GROUP BY
關(guān)鍵字之后。