【发布时间】:2020-05-23 03:23:40
【问题描述】:
所以我有一张这样的桌子,并且一直在尝试找出一种方法来选择所有拥有 > 1 个 type='double' 房间的 hotelNo。还没有想出一种方法来获得帮助。
MariaDB [hotel]> SELECT * FROM room;
+--------+---------+--------+-------+
| roomNo | hotelNo | type | price |
+--------+---------+--------+-------+
| 1 | 1 | single | 80 |
| 1 | 2 | single | 90 |
| 1 | 3 | single | 80 |
| 1 | 4 | single | 80 |
| 1 | 5 | single | 80 |
| 1 | 6 | double | 100 |
| 1 | 7 | single | 80 |
| 2 | 1 | single | 80 |
| 2 | 2 | single | 80 |
| 2 | 3 | single | 80 |
| 2 | 4 | single | 80 |
| 2 | 5 | single | 80 |
| 2 | 6 | single | 80 |
| 2 | 7 | single | 80 |
| 3 | 1 | double | 95 |
| 3 | 2 | double | 100 |
| 3 | 3 | double | 95 |
| 3 | 4 | double | 95 |
| 3 | 5 | double | 95 |
| 3 | 7 | double | 95 |
| 4 | 1 | vip | 120 |
| 4 | 2 | vip | 120 |
| 4 | 3 | vip | 120 |
| 4 | 4 | vip | 120 |
| 4 | 5 | double | 100 |
| 5 | 1 | single | 85 |
| 5 | 2 | other | 120 |
| 5 | 3 | other | 110 |
| 5 | 4 | double | 95 |
| 5 | 5 | double | 100 |
+--------+---------+--------+-------+
30 行(0.001 秒)
我有:
MariaDB [hotel]> SELECT hotelNo, type, COUNT(*) FROM room GROUP BY type HAVING COUNT(*) > 2;
但这只是给了我每种房型的总数:
+---------+--------+----------+
| hotelNo | type | COUNT(*) |
+---------+--------+----------+
| 1 | single | 14 |
| 6 | double | 10 |
| 1 | vip | 4 |
+---------+--------+----------+
3 行(0.001 秒)
我想得到一个输出,显示哪个hotelNo 有两个以上的双人房。
【问题讨论】:
-
你的预期输出是什么?
标签: sql group-by mariadb where-clause having-clause