首页 > 解决方案 > 如何获取每个客户的询问列

问题描述

我有这张桌子叫table a

在此处输入图像描述

我需要获取 CustomerID,2015 年的 sum(Income),2016 年的 sum(Income),他有没有买过 productId A (boolean),是总 sum(income)> 1000 (boolean),InvoiceID 总数

所有这些都在一个查询中,结果应该是每个客户 1 行。

请帮助我什至不知道如何开始!

标签: sql

解决方案


这基本上是条件聚合:

select customerid,
       sum(case when extract(year from date) = 2015 then sales end) as sales_2015,
       sum(case when extract(year from date) = 2016 then sales end) as sales_2016,
       max( product = 'A' ) as ever_bought_a,
       sum(income) > 1000 as sum_exceeds_1000,
       count(*) as num_invoices
from t
group by customerid;

你还没有指定数据库,所以这真的是伪代码。您需要根据您的特定数据库对其进行调整。


推荐阅读