[英]Select rows with max value of a column
我有一個如下表:
acct_id----+---Bill_Id-------+--Bill_dt-----+---alt_bill_id--
12345 123451 02-JAN-2014 101
12345 123452 02-JAN-2014 102
12346 123461 02-JAN-2014 103
12347 123471 02-JAN-2014 104
如果相同的acct_id
有兩行,則需要忽略最小的alt_bill_id
來獲取數據。 在這種情況下,我需要忽略acct_id
12345和alt_bill_id 101的行。我需要如下結果:
acct_id----+---Bill_Id-------+--Bill_dt-----+---alt_bill_id--
12345 123452 02-JAN-2014 102
12346 123461 02-JAN-2014 103
12347 123471 02-JAN-2014 104
您必須使用子查詢來找到最大值( bill_id
),然后加入該子查詢。 像這樣:
SELECT main.* FROM my_table AS main
JOIN (
SELECT MAX(bill_id) AS bill_id
FROM my_table
GROUP BY acct_id
) AS highest
ON highest.bill_id = main.bill_id;
這是任何想要嘗試的人的SQLFiddle: http ://sqlfiddle.com/#!2/fc66a/2
我已經使用過這樣的查詢:
SELECT T1.* FROM CI_BILL T1
WHERE ALT_BILL_ID IN (SELECT MAX(ALT_BILL_ID)
FROM CI_BILL T2 GROUP BY T2.ACCT_ID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.