mysql - 在条件下使用 GROUP BY,怎么样?

标签 mysql sql

我想象如何解决我的任务:

SELECT row, val1, val2, SUM(1) AS total
FROM mess
if(row < 0){ GROUP BY val1, val2 } if(row > 0) {GROUP BY val1} 

我需要在一个 SELECT 中使用两个不同的 GROUP BY,这可能吗?

最佳答案

SELECT row, val1, val2, SUM(1) AS total, 
    CASE WHEN row<0 THEN val2 ELSE 0 END as group2
FROM mess
GROUP BY val1, group2

如果行>0,所有值都相同,所以组结果将只计算 val1

关于mysql - 在条件下使用 GROUP BY,怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35811422/

相关文章:

sql - Postgres - 从字符串中字符的开头到倒数第二个出现的子字符串

java - 如何在 hibernate 查询语言中按没有时间戳的日期分组?

mysql - 如何在不丢失 Xampp 数据的情况下将类型从 varchar 更改为 Date

java - 插入数据库并自动增量

php - 为什么每次向 MySQL 插入数据时都会出现此错误?

SQL - 如何找到列中的最高数字?

php创建然后插入数据报错

python - 2002, "Can' t 通过 socket '/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)"in docker-compose up

php 没有正确创建 mysql 列