我想從表中選擇一個值,該值是唯一的和最小從表中選擇
例如一個值,該值是唯一的,並且分,我有一個表(用戶,名稱,價格);我想返回支付最低價格的用戶,價格只重複一次。
價格未知。它是由用戶提供的,因爲它是一次拍賣。
舉例來說,如果我有...
user name price
1 jo 30
2 ko 50
3 lo 30
4 po 55
...那麼贏家是用戶2,因爲沒有重複他的價格是最低。 30是最小的,但它是重複的
如何返回用戶2?
我想從表中選擇一個值,該值是唯一的和最小從表中選擇
例如一個值,該值是唯一的,並且分,我有一個表(用戶,名稱,價格);我想返回支付最低價格的用戶,價格只重複一次。
價格未知。它是由用戶提供的,因爲它是一次拍賣。
舉例來說,如果我有...
user name price
1 jo 30
2 ko 50
3 lo 30
4 po 55
...那麼贏家是用戶2,因爲沒有重複他的價格是最低。 30是最小的,但它是重複的
如何返回用戶2?
下面是一個方法來做到這一點。
SELECT
*
FROM MyTable t0
WHERE t0.id IN
(
SELECT
id
FROM
MyTable
GROUP BY value
HAVING count(*) = 1
)
ORDER BY value
LIMIT 1
其中MyTable
是
| id | name | value |
|----|------|-------|
| 1 | jo | 30 |
| 2 | ko | 50 |
| 3 | lo | 30 |
| 4 | po | 55 |
並且輸出是
| id | name | value |
|----|------|-------|
| 2 | ko | 50 |
子查詢內將提供具有沒有重複的ID。在這種情況下,它將是2,4
。
嘗試此查詢
select * from category_list where item_price not in(select item_price from category_list where id not in(select id from category_list group by item_price)) order by item_price limit 1
與字段名
而T0替換列字段的名字嗎?它反駁什麼? – wade
我用它,但它返回一個重複值 – wade
't0'是一個別名,在'FROM'子句中有一個隱含的'AS'(可選)。與'FROM MyTable as t0'一樣 - 只是一種快捷鍵入長名稱的方法。僅供參考 - https://en.wikipedia.org/wiki/Alias_(SQL) – DaveCoast