And*_*ndy 3 sql group-by count distinct
请注意,我在这里看到过类似的查询,但认为我的查询不同,值得单独提问.
假设有一个包含以下表的数据库:
现在假设我想找到订购了10种以上不同类型产品的所有客户的名称,以及他们订购的产品类型的数量.同一产品的多个订单不计算在内.
我认为下面的查询应该有效,但有以下问题:
以下是我的查询
select T1.customer_name, T1.customer_ID, T2.number_of_products_ordered
from customer_table T1
inner join
(
select cust.customer_ID as customer_identity, count(distinct ord.product_ID) as number_of_products_ordered
from customer_table cust
inner join order_table ord on cust.customer_ID=ord.customer_ID
group by ord.customer_ID, ord.product_ID
having count(distinct ord.product_ID) > 10
) T2
on T1.customer_ID=T2.customer_identity
order by T2.number_of_products_ordered, T1.customer_name
Run Code Online (Sandbox Code Playgroud)
这不是你想要的吗?似乎有点简单.在SQL Server上测试它 - 工作正常.
SELECT customer_name, COUNT(DISTINCT product_ID) as products_count FROM customer_table
INNER JOIN orders_table ON customer_table.customer_ID = orders_table.customer_ID
GROUP BY customer_table.customer_ID, customer_name
HAVING COUNT(DISTINCT product_ID) > 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47465 次 |
| 最近记录: |