mysql - 选择与列相关的行

标签 mysql

我有这样的 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/

相关文章:

python - 如何将 mysql-connector-python 与 MAMP 一起使用?

php - 如何在php中显示来自特定mysql数据库的所有表名

mysql - 数据库应该简单且重复吗?

mysql - 有没有办法重置 mysql IDLE/Sleep 连接?

php - 关于错误参数 PDO 的 MySQL 和 PHP

mysql - 使用 Sequel Pro 和 MAMP 连接到远程 MySQL

sql - 从 MySQL 中的多个表中选择

MySql 事件不起作用

MySQL 大表查询优化

PHP PDO 连接失败