mysql - 将大于和小于的 SQL 查询合并为一个

标签 mysql sql

我有以下两个问题:

select count * form a where temp>str group by x,y 
select count * form a where temp<=str group by x,y

这导致对表进行两次解析。由于表的大小是 100 个演出,我在想是否可以将其减少为单个查询。

最佳答案

select sum(IF(temp>'str',1,0)) as GREATER,
       sum(IF(temp<'str',1,0)) as LESSER
  from a
  group by x,y

这将返回包含两个字段 GREATER 和 LESSER 的单行,这两个字段分别包含大于和小于字符串的行数计数。

IF(temp>'str',1,0)) 如果大于则返回 1,否则返回 0。将这些值相加将给出更大的 rwos 的总数。

IF(temp<'str',1,0)) 如果较小则返回 1,否则返回 0。将这些值相加将得出较小的 rwos 总数。

关于mysql - 将大于和小于的 SQL 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517998/

相关文章:

MySQL触发器,在不活动后删除一行?

mysql - 值在sql命令中变为空?

MySQL,为什么这个简单的 'CREATE TABLE' 查询失败?

java - 使用来自两个不同数据库的两个表通过 JOOQ 构建左连接查询

sql - ExecuteReader 不返回任何结果,当检查的查询不返回时

c# - 对数据库存储的信息实现复杂的算法

sql - 不区分大小写的外键 PostgreSQL

mysql - 有没有办法在 SQL 中乘以结果?

php mysql耗时计算

sql - 从平面文件加载 SQL 表