创建一个新表,其中包含另一列的值计数列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建一个新表,其中包含另一列的值计数列相关的知识,希望对你有一定的参考价值。
我有一个表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
该查询将永远运行。有人可以提供解决方案吗?
答案
为什么不使用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;
以上是关于创建一个新表,其中包含另一列的值计数列的主要内容,如果未能解决你的问题,请参考以下文章
Python-根据另一列的更改创建一个计数器列,然后再次启动计数器