【发布时间】:2014-05-25 23:51:44
【问题描述】:
我正在使用以下查询来整理表中的数据,但计算不正确:
SELECT rowid, customer, category, SUM(DISTINCT return) as returntotal, SUM(DISTINCT release) as releasetotal FROM orders GROUP BY customer
这是我当前的表格:
这就是我需要的查询结果:
我需要 DISTINCT 'category' 中'return' 中的 DISTINCT 值的总和;按 DISTINCT 'category' 和所有 GROUPED BY 客户在 'release' 中的 DISTINCT 值的总和。我当前的查询正在跳过具有相同值的 DISTINCT 类别。例如:在顶部图像中的 rowid 17-19 中,我的查询结果为 Scott 的值“465”,其中我需要的值是每个 DISTINCT 类别的 DISTINCT 值或家居用品为 465,草坪为 465。
我的每一行的输出应该如下:
customer (no duplicates) totalreturn totalrelease
以下是每行所需输出的示例:
Scott $0 $930
Michelle $123 $250
Brad $2070 $0
问题:
- 我的陈述应该是什么样子才能产生我需要的结果?
- 如果我已经在使用 DISTINCT,是否过度使用 GROUPED BY??
谢谢!
【问题讨论】:
-
考虑提供适当的 DDL(和/或 sqlfiddle)以及所需的结果集