我有一个包含order_id和aisle_id列的表aisle_list。
以下是一个例子:
order_id aisle_id
1 21
1 24
1 83
1 95
1 108
1 120
36 0
36 2
我想创建一个新表,其中的列列出了每个order_id的唯一aisle_ids计数的计数,其中count为4,5或6.所以我需要有一个嵌套的select,其中包含一个group by。
CREATE TABLE sample_path AS
SELECT a.order_id, a.aisle_id, x.count_num_aisles
FROM aisle_list as a,
(SELECT count(*) as count_num_aisles FROM aisle_list
GROUP BY order_id) as x
WHERE count_num_aisles IN (4, 5, 6);
期望的结果:
order_id aisle_id count_num_aisles
1 21 6
1 24 6
1 83 6
1 95 6
1 108 6
1 120 6
查询将永远运行。有人可以提供解决方案吗?
答案 0 :(得分:0)
为什么不使用group by
和having
?
SELECT a.order_id, count(distinct aisle_id) as num_aisles
FROM aisle_list a
GROUP BY a.order_id
HAVING count(distinct aisle_id) BETWEEN 4 and 6;