我有一个用于记录客户交易的数据库。
表(交易)的详情如下:
**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名消费者。
任何人都可以建议一种方法来做到这一点,因为到目前为止我已经画了一个空白。
非常感谢。
答案 0 :(得分:1)
您是否尝试过SUM
和GROUP BY
?
类似的东西:
SELECT SUM(amount) as `total_amount`, userid
FROM `transactions`
GROUP BY `userid`
答案 1 :(得分:0)
SELECT userid, SUM(amount) AS total FROM transactions GROUP BY userid
在SUM
子句中使用SELECT
之类的聚合函数通常只会导致输出一行,其中包含WHERE
子句匹配的所有行的总和。 GROUP BY
是这些函数的修饰符,使它们在指定字段中按每个唯一值聚合。
请参阅:Group By
答案 2 :(得分:0)
前50名消费者:
SELECT userid, SUM(amount) AS TotalSpent
FROM transactions
GROUP BY userid
ORDER BY TotalSpent LIMIT 50