根据列和distinct列的值选择行

bxpogfeg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(410)

我想根据门店数量选择具有不同门店位置的行,示例如下所示:

  1. id | item_name | number_of_store| store_location|
  2. +----+---------+-------------------+-------------+
  3. | 3 | margarine | 2 | QLD |
  4. | 4 | margarine | 2 | NSW |
  5. | 5 | wine | 3 | QLD |
  6. | 6 | wine | 3 | NSW |
  7. | 7 | wine | 3 | NSW |
  8. | 8 | laptop | 1 | QLD |
  9. +----+---------+-------------------+-------------+

预期结果如下所示:

  1. id | item_name | number_of_store| store_location|
  2. +----+---------+-------------------+-------------+
  3. | 3 | margarine | 2 | QLD |
  4. | 4 | margarine | 2 | NSW |
  5. | 5 | wine | 3 | QLD |
  6. | 6 | wine | 3 | NSW |
  7. | 8 | laptop | 1 | QLD |
  8. +----+---------+-------------------+-------------+

我不在乎返回哪个id列值。需要什么样的sql?

k5ifujac

k5ifujac1#

你可以用 GROUP BY :

  1. SELECT id, item_name ,number_of_store, store_location
  2. FROM tab
  3. GROUP BY item_name ,number_of_store, store_location;
  4. -- will work if ONLY_FULL_GROUP_BY is disabled

否则你需要 ANY_VALUE 或聚合函数,如 MIN :

  1. SELECT ANY_VALUE(id) AS id, item_name ,number_of_store, store_location
  2. FROM tab
  3. GROUP BY item_name ,number_of_store, store_location;

db-fiddle.com演示

相关问题