sql - 从表 A 的一列中找到一个与表 B 的一列的值相关的重复两次以上的文本值
问题描述
所以我有2张桌子
Table A
hotelNo | name
H1 |Okto
H2 |Petro
H3 |Duke
H5 |Caesar
H6 |Kirby
Table B
hotelNo | type
H1 |Single
H1 |Single
H1 |Double
H1 |Self
H1 |Single
H2 |Single
H2 |Single
H2 |Double
H2 |Self
H2 |Deluxe
H3 |Single
H3 |Single
H3 |Double
H3 |Self
H3 |Deluxe
H5 |Single
H5 |Single
H5 |Double
H5 |Double
H5 |Double
H6 |Single
H6 |Double
现在,我需要列出拥有超过 2 间双人房的酒店。含义 H# = 'Double' > 2 期望的结果应该是这样的:hotelNo | 类型 | 计数 H5 |双|3
我花了更多 24 小时试图解决这个问题,但这是我得到的更远的地方:
SELECT a.hotelNo, b.type, count(b.type = 'Double') > 2 FROM TableA a, TableB b WHERE b.type = 'Double'
——但它不起作用。而是显示:hotelNo | 类型 | 计数(b.type = '双')H1 |双|1
请帮忙!!
解决方案
你似乎走在正确的轨道上。您可以仅限双人间,然后按酒店汇总并声明计数:
SELECT
a.hotelNo,
a.name
FROM TableA a
INNER JOIN TableB b
ON a.hotelNo = b.hotelNo
WHERE
b.type = 'Double'
GROUP BY
a.hotelNo,
a.name
HAVING
COUNT(*) > 2;
推荐阅读
- android - 什么是 Firebase 远程配置开发者模式
- node.js - sinonStub.called 打印错误,尽管我正在调用该函数
- ionic-framework - 在 ionic 4 中无法加载控制器 css?
- sql - 获取按 ID 分组的每条最新记录的值
- elasticsearch - 如何从 Filebeat Shipper 将数据转发到 Power Bi
- windows-10 - “Microsoft Windows 10 Enterprise 2016 LTSB 10.0.14393 Version 1607”在 qemu/kvm (proxmox) 中启动失败
- mysql - MySQL:“键的重复条目”,但在 DB 中我们可以看到它没有重复
- ionic-framework - Ionic4 离子选择样式属性不起作用
- docker - 在 Docker 构建过程中从主机复制文件以最小化图像大小
- laravel - 如何在不刷新页面的情况下设置 url (Laravel + vueJS)