MySQL如何对表的最低值(value)/价格进行排序,并且只显示最低的名称?

标签 mysql sql database

我想要一个包含酒店房间的数据库,客人可以在其中进行预订。我想显示每个城市最便宜的酒店房间,如果价格相同,我想显示两个城市。我该怎么做呢。我是 Sql 的初学者,所以我很难解决这个问题。

我目前拥有的:

| type       | pID        |city           |price    |
|:-----------|------------:|:------------:|----------
| B          |  COD12      |    Canvas    |  240    |
| B          |  COD40      |    Canvas    |  200    |
| B          |  KHOD20     |    Kentucky  |  40     |
| B          |  KHOD60     |    Kentucky  |  40     |

我想要什么:


| type        | pID        |city          |price    |
|:-----------|------------:|:------------:|----------
| B          |  COD40      |    Canvas    |  200    |
| B          |  KHOD20     |    Kentucky  |  40     |
| B          |  KHOD60     |    Kentucky  |  40     |

最佳答案

这个 SQL 给出了你想要的描述

select type,pID,city,price
  from your table 
 where (city, price) 
    in (select city, min(price) 
          from your table 
         group by 1)

子查询找出每个城市的最低价格,将城市和价格信息作为过滤器传递给主查询。使用此过滤器主查询将返回与城市/价格对匹配的所有行。

关于MySQL如何对表的最低值(value)/价格进行排序,并且只显示最低的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56798676/

相关文章:

mysql - 间歇性地从 mysql innodb 查询中获取旧数据

mongodb - 为什么 MongoDB 不使用 fsync()?

mysql - 在 SQL 中请求带日期的多列最小值/最大值

java - 如何在 Android 中使用 Berkeley DB SQL API

java - 无法在intellij中使用maven连接mysql数据库

php - 如何将 Android 上的 SQLite 同步到 MySQL

Mysql从备份sql中检索数据

SQL 日期重叠

mysql - 替换列中给定的字符串出现位置

Sql 对象拼写检查器