在MySQL中進行排序和分組是經常用到的操作。但有時候需要先根據某個字段進行排序,再根據另一個字段進行分組,并取每組中某個字段的最大值。下面是一段示例代碼來實現這個功能:
SELECT
t1.field1,
MAX(t1.field2)
FROM (
SELECT
*
FROM
table1
ORDER BY
field1 DESC, field2 DESC
) t1
GROUP BY
t1.field1
首先,在FROM子句中,我們利用子查詢將原表按照field1和field2字段進行降序排序。注意,要按照要求排序,需要使用兩個字段進行排序,且先根據field1排序。然后,在子查詢的結果基礎上,我們再對field1進行分組,并取組內field2的最大值。
本次操作的核心在于在子查詢中使用ORDER BY關鍵字完成先排序的功能,然后在主查詢中使用MAX函數和GROUP BY關鍵字完成分組和取最大值的功能。
上一篇c json 內嵌套