0

我有一个用于记录客户交易的数据库。

表(交易)列示如下:

**ID | Added-date | userid | amount | department | transaction-date | addedby**

 1     yyyy-mm-dd   P1001    9.78     dpt 1        yyyy-mm-dd         username

 1     yyyy-mm-dd   P1023    19.78    dpt 2        yyyy-mm-dd         username

 1     yyyy-mm-dd   P1021    39.78    dpt 3        yyyy-mm-dd         username

 1     yyyy-mm-dd   T1501    9.78     dpt 2        yyyy-mm-dd         username

=======

我想做的是将每个用户的交易总价值相加,并能够显示前 50 名支出者。

任何人都可以建议一种方法来做到这一点,因为到目前为止我已经画了一个空白。

非常感谢。

4

3 回答 3

1

你试过SUMandGROUP BY吗?

就像是:

SELECT SUM(amount) as `total_amount`, userid
FROM `transactions`
GROUP BY `userid`
于 2013-06-11T18:47:33.640 回答
0
SELECT userid, SUM(amount) AS total FROM transactions GROUP BY userid

SUM在您的子句中使用聚合函数SELECT通常会导致仅输出一行,其中包含该WHERE子句匹配的所有行的总数。GROUP BY是这些函数的修饰符,并使它们在指定字段中按唯一值聚合。

请参阅:分组依据

于 2013-06-11T18:48:45.673 回答
0

对于前 50 名消费者:

SELECT userid, SUM(amount) AS TotalSpent
FROM transactions
GROUP BY userid
ORDER BY TotalSpent LIMIT 50
于 2013-06-11T18:54:24.600 回答