mysql - 带 Mysql 计数的不同 SUM

标签 mysql sql doctrine

我有一个疑问:

SELECT

    t1.name as Name

    count ( distinct t2.key ) as Total
    SUM ( IF( t2.time = '12:00' , 1 , 0) ) as QttMidDay 

FROM t1

LEFT JOIN t2 on t1.key = t2.key

GROUP BY t1.key

问题是,我如何对 QttMidDay 的 2° 参数 SUM 进行“条件计数”?

最佳答案

我猜您可以通过在连接之前聚合来解决您的问题。我最好的猜测是:

SELECT t1.name as Name, t2.Total, t2.QttMidDay 
FROM t1 LEFT JOIN
     (SELECT COUNT(DISTINCT t2.key) as Total,
             SUM(t2.time = '12:00') as QttMidDay
      FROM t2 
      GROUP BY t2.key
     ) t2
     ON t1.key = t2.key;

我不确定子查询中是否需要 COUNT(DISTINCT)

关于mysql - 带 Mysql 计数的不同 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297985/

相关文章:

php - 如何访问 Doctrine2 中 PrePersist LifecycleCallback 的旧值

mysql - 在多开发人员环境中处理数据库 View 的迁移

php - 如何在用户定义的 symfony Bundle 中配置 Doctrine Entity Annotation 自动加载?

php - fatal error : Undefined class constant 'FETCH_ASSOC' while setting PDO connection

php - 如何使用准备好的语句一次在 mysql 数据库中插入多行?

php - 使用 PDO 转换我的开发后,代码无法正常工作

MySQL/SQL 多表查询

java - 如何在Java中使用executeQuery()获取返回值?

mysql - 在 SQL 中连接来自同一个表的两个外键

MySQL - 长文本字段的词频计数