创建一个新表,其中包含另一列的值计数列

问题描述 投票:0回答:1

我有一个表aisle_list,其中包含order_id和aisle_id列。 以下是一个例子:

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.所以我需要有一个嵌套选择。

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

该查询将永远运行。有人可以提供解决方案吗?

sql group-by count nested where-in
1个回答
0
投票

为什么不使用group byhaving

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;
© www.soinside.com 2019 - 2024. All rights reserved.