示例表用户:
ID | USER_ID | SCORE |
1 | 555 | 50 |
2 | 555 | 10 |
3 | 555 | 20 |
4 | 123 | 5 |
5 | 123 | 5 |
6 | 999 | 30 |
结果集应该像
ID | USER_ID | SCORE | COUNT |
1 | 555 | 80 | 3 |
2 | 123 | 10 | 2 |
3 | 999 | 30 | 1 |
是否有可能生成一个可以返回上表的sql,到目前为止,我只能统计某些user_id出现的行,但不知道如何为每个用户求和和显示?
您已经在源数据和所需结果中都包含了一个名为“ ID”的列,但是我将假定这些ID值不相关,仅表示行号或行号-否则该问题就没有意义了。 。
在这种情况下,您可以简单地使用:
SELECT
USER_ID,
SUM(SCORE) AS SCORE,
COUNT(USER_ID) AS COUNT
FROM
<Table>
GROUP BY
USER_ID
如果您确实也想生成ID列,那么如何执行取决于所使用的数据库平台。例如,在Oracle上,您可以使用ROWNUM伪列,在SQL Server上,您将需要使用ROW_NUMBER()函数(该函数也适用于Oracle)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句