Don*_*n P 5 mysql sql group-by distinct
我想计算每个用户在彼此的'5'内有多少行.
例如,Don-501和Don-504应该被计算在内,而Don-501和Don-1600不应该被计算在内.
开始:
Name value
_________ ______________
Don 1235
Don 6012
Don 6014
Don 6300
James 9000
James 9502
James 9600
Sarah 1110
Sarah 1111
Sarah 1112
Sarah 1500
Becca 0500
Becca 0508
Becca 0709
Run Code Online (Sandbox Code Playgroud)
完:
Name difference_5
__________ _____________
Don 1
James 0
Sarah 2
Becca 0
Run Code Online (Sandbox Code Playgroud)
将ABS()函数与子查询中的自连接结合使用:
所以,像这样:
SELECT name, COUNT(*) / 2 AS difference_5
FROM (
SELECT a.name name, ABS(a.value - b.value)
FROM tbl a JOIN tbl b USING(name)
WHERE ABS(a.value - b.value) BETWEEN 1 AND 5
) AS t GROUP BY name
Run Code Online (Sandbox Code Playgroud)
根据安德烈亚斯的评论进行编辑。
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |