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如何确定哪些是合法数据,哪些是重复的?例如:您想删除精确的重复项(并基于哪个列集)还是其他?