欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql分組取第一行

方一強1年前8瀏覽0評論

在使用MySQL查詢時,有時我們需要對數(shù)據(jù)進行分組,并取出每組的第一行。這個需求很常見,通常可以使用子查詢、聯(lián)接等方式實現(xiàn)。下面介紹兩種比較常見的實現(xiàn)方法。

SELECT *
FROM table
WHERE (field1, field2) IN (
SELECT field1, MIN(field2)
FROM table
GROUP BY field1
)

這種方法使用子查詢,在子查詢中先按照需要分組的字段進行分組,并取出每組的最小值。然后在主查詢中使用IN語句,根據(jù)該字段和最小值來判斷是否屬于該組的第一行。

SELECT t1.*
FROM table t1
LEFT JOIN table t2
ON t1.field1 = t2.field1 AND t1.field2 >t2.field2
WHERE t2.field1 IS NULL

這種方法使用聯(lián)接,在主查詢中將表自聯(lián)一次。然后在ON語句中指定需要分組的字段相等,但是需要取出每組的第一行,所以在ON語句中加入了一個條件,即t1.field2 >t2.field2,這樣能夠保證t2是t1的前一行。然后在WHERE語句中將t2的該字段為NULL的行篩選出來,即可得到每組的第一行。