我有这样的 table ;
col1 col2 col3 周
ABC 21
AF 22
23世纪
埃夫24
25 小时
空调26
27
我想计算包含 'a' 的行数,差异为 1 周和 2 周等。例如;
2次相差1周,1次相差0。
周差异数数
0 1
1 2
2 0
等等。
谢谢,我试图用我糟糕的英语说清楚。
最佳答案
我不确定我是否理解这个问题。但是,假设:
- 您想要计算任意列(col1、col2、col3)中包含“a”的行数。
- 当您说“2 次,相差 1 周”时,它是 2 次,因为“a”连续 2 周出现:21 和 22。
- 同样,将有 3 行(因此,3 次)具有“2 周差异”:周列等于 22、24、26 的行
然后,以下查询可能会有所帮助:
SELECT
ABS(t2.week - t1.week) AS week_difference,
COUNT(DISTINCT t1.week) AS count
FROM
temp t1, temp t2
WHERE
((t1.col1 = 'a' OR t1.col2 = 'a' OR t1.col3 = 'a')
AND (t2.col1 = 'a' OR t2.col2 = 'a' OR t2.col3 = 'a'))
AND ABS(t2.week - t1.week) <= 2
GROUP BY
week_difference
ORDER BY
week_difference
关于mysql - 选择与列相关的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53319514/