sql - 如何获取每个客户的询问列
问题描述
我有这张桌子叫table a
我需要获取 CustomerID,2015 年的 sum(Income),2016 年的 sum(Income),他有没有买过 productId A (boolean),是总 sum(income)> 1000 (boolean),InvoiceID 总数
所有这些都在一个查询中,结果应该是每个客户 1 行。
请帮助我什至不知道如何开始!
解决方案
这基本上是条件聚合:
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;
你还没有指定数据库,所以这真的是伪代码。您需要根据您的特定数据库对其进行调整。
推荐阅读
- actionscript-3 - Flash CS3 中的倒带动画
- eclipse-plugin - 如何使用补丁将 Eclipse 插件移动到不同的功能?
- css - 如何定位元素并使其响应
- android - 是否有适用于 Android 8.0 及更高版本的 NFC 蓝牙切换示例?
- pentaho - 如何使用 Pentaho 验证一个 csv 数据与另一个 csv 文件的比较?
- laravel - 无法分享图片。Meta og:图像不起作用。(Laravel + VueJs)
- python - 无法在 Python 3.6.5/Pycharm 中导入我自己的模块
- ios - ios如何使用Alamofire发布多个自定义对象
- angular - 如何找出程序的当前状态 - Nativescript
- spring-boot - Thymeleaf Spring Boot:将表单绑定到对象,某些字段为空?