从表中选择唯一的值和最小值

时间:2016-07-07 22:54:10

标签: mysql

我想从表中选择一个唯一的值和min

例如,我有一张桌子(用户,名字,价格);我想退回支付最低价格的用户,价格只重复一次。

价格未知。它由用户提供,因为它是拍卖。

例如,如果我有......

user   name    price
1      jo      30
2      ko      50
3      lo      30
4      po      55

...然后获胜者是用户2,因为他的价格不重复且是最低价格。 30是最小的,但它重复

如何退回用户2?

2 个答案:

答案 0 :(得分:1)

这是一种方法。

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

答案 1 :(得分:1)

尝试此查询

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

将字段名称替换为您的字段名称