我想从表中选择一个值,该值是唯一的和最小从表中选择
例如一个值,该值是唯一的,并且分,我有一个表(用户,名称,价格);我想返回支付最低价格的用户,价格只重复一次。
价格未知。它是由用户提供的,因为它是一次拍卖。
举例来说,如果我有...
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