【问题标题】:Iteration count and where clause迭代计数和 where 子句
【发布时间】:2017-11-24 03:55:27
【问题描述】:

我需要一些帮助。 我有很多用户的出生日期:

SELECT COUNT(or SUM) ()    FROM ()

WHERE () = ''  

AND TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE())=18(age)

我必须通过仅更改 where 子句中的年龄来多次计算列的计数、总和、平均值和类似的东西。 我怎样才能确保我不会浪费时间运行查询这么多年? 我必须从 18 到 65:

SELECT COUNT(or SUM) () FROM ()

WHERE () = ''  AND () = ''

AND ()<'' 

AND TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE())=**19,29,21 etc**.

I would like this columns results:

count()  18

count()  19 etc

or

sum () 18

sum() 19 etc 

真的非常感谢。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    TIMESTAMPDIFF的结果作为一列返回,然后使用GROUP BY

    SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS age, COUNT(*)
    FROM ...
    WHERE ...
    GROUP BY age
    

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2023-03-10
      • 2014-03-12
      相关资源
      最近更新 更多