mysql - 如何在 SELECT 查询中按两个 SUM/COUNT 的比率进行 ORDER?

标签 mysql select sql-order-by

SELECT 查询中为

SELECT 
category_id, 
COUNT(*) AS Total, 
SUM(IF(year=2016,1,0) AS year2016, 
SUM(IF(year=2015,1,0) AS year2015
FROM articles
GROUP BY category_id

如何ORDER BYyear2016/year2015的比率?

最佳答案

SELECT 语句移至子查询中将允许您重新使用计算出的 SUM 聚合。转换为 DECIMAL 将告诉 MySQL 不要使用整数除法并将值保留在小数点右侧。

SELECT category_id, Total, year2016, year2015
FROM
  (SELECT 
    category_id, 
    COUNT(*) AS Total, 
    SUM(IF(year=2016,1,0)) AS year2016, 
    SUM(IF(year=2015,1,0)) AS year2015
  FROM articles
  GROUP BY category_id) AS t
ORDER BY CAST(year2016 AS DECIMAL(14,4)) / CAST(year2015 AS DECIMAL(14,4))

关于mysql - 如何在 SELECT 查询中按两个 SUM/COUNT 的比率进行 ORDER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41050347/

相关文章:

jquery - 如果使用 javascript 获取值,则获取表单选择选项的标签

php - 从mysql中的多个表中获取结果

mysql - 我想获取两个特定列之间的列的值

mysql order by,先为null,后为DESC

mysql - 选择行直到数量

mysql 查询两个表?

PHP选择多个数组表

mysql - node/mysql查询多次返回相同的行:

mysql - 从 MySQL 中的内连接表中选择最新行

mysql - SQL 查询将记录分组在单独的字段下