[英]Get records where one column has the same values and another column has different values
[英]get records where one colum has values within range across records with same column names
如下表
+------+-----+------+----------+-----------+
| city | day | hour | car_name | car_count |
+------+-----+------+----------+-----------+
| 1 | 12 | 00 | corolla | 8 |
| 1 | 12 | 00 | city | 9 |
| 1 | 12 | 00 | amaze | 3 |
| 1 | 13 | 00 | corolla | 17 |
| 1 | 13 | 00 | city | 2 |
| 1 | 13 | 00 | amaze | 8 |
| 1 | 14 | 00 | corolla | 3 |
| 1 | 14 | 00 | amaze | 1 |
+------+-----+------+----------+-----------+
需要找出city, day, hour
,其中car_count
所有car_name
s是> = 3和<= 10
预期结果
| city | day | hour |
+------+-----+------+
| 1 | 12 | 00 |
使用group by
并having
。
select city,day,hour
from tablename
group by city,day,hour
having sum(case when car_count>=3 and car_count<=10 then 1 else 0 end) = count(*)
select city, day, hour
from t
group by 1, 2, 3
having bool_and(car_count >= 3)
您可以通过城市,日和小时的有 之条件(你的病情)=次数 群 (你的病情)
因此,基本上,我们正在为满足条件“ 10> = car_count> = 3”的每一行创建一个标志。 现在,我们对所有标志求和并同时对其进行计数,如果计数和总和相等,则意味着您的条件“ 10> = car_count> = 3”对于所有针对城市,日和小时的汽车而言为真
create table want as
select city,day,hour from have
group by city,day,hour
having sum(car_count>=3 and car_count<=10)=count(car_count>=3 and car_count<=10);
如有任何疑问,请让我知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.