Sqlite 分组后求和
这是我的桌子Sqlite 分组后求和,sqlite,Sqlite,这是我的桌子 customerID invoice payment 1 101 300 1 101 300 3 102 200 4 103 200 1 104 200 我想做的是,首先:分组发票,然后对分组发票的付款进行合计(300
customerID invoice payment
1 101 300
1 101 300
3 102 200
4 103 200
1 104 200
我想做的是,首先:分组发票,然后对分组发票的付款进行合计(300+200)
预期结果是500。但是我用上面的代码得到了800。如何正确执行此操作?如果要排除重复项,请使用
DISTINCT
:
SELECT
customerID,
SUM(payment) as totalpaid
FROM
(SELECT DISTINCT customerID, invoice, payment FROM customers)
GROUP BY customerID
对于customerID=1
,您可以执行以下操作
SELECT
customerID,
SUM(payment) as totalpaid
FROM
(SELECT DISTINCT customerID, invoice, payment FROM customers)
WHERE customerID = 1
如果要排除重复项,则无需按
分组使用DISTINCT
:
SELECT
customerID,
SUM(payment) as totalpaid
FROM
(SELECT DISTINCT customerID, invoice, payment FROM customers)
GROUP BY customerID
对于customerID=1
,您可以执行以下操作
SELECT
customerID,
SUM(payment) as totalpaid
FROM
(SELECT DISTINCT customerID, invoice, payment FROM customers)
WHERE customerID = 1
不需要按分组
你为什么期望300?你应该得到600,因为你有两个1的消费者ID,每个300。Jordan S,Gyhth:我有一个混乱的表格,在那里可以获得这种重复数据。现在如何完成这项工作?如何筛选这些条目并获得一个值300?@Zils如何确定哪些是合法数据,哪些是重复的?例如:是否要删除完全重复的数据(并基于哪个列集)或其他内容?为什么预期为300?您应该获得600,因为您有两个1的消费者ID,每个为300。Jordan S,Gyhth:我有一张乱七八糟的表格,里面有这种重复的数据。现在如何完成这项工作?如何筛选这些条目并获得一个值300?@Zils如何确定哪些是合法数据,哪些是重复的?例如:您想删除精确的重复项(并基于哪个列集)还是其他?