mysql - 计算特定日期范围内MySQL中每行值的百分比

标签 mysql

我想获取mysql数据库中某个表的某个日期范围内具有最大值的前4行。所以我可以用这个代码行来做,例如:

SELECT MONTH(date) as month, amount from sales where date >='2014-01-01' AND date <='2014-12-31' ORDER BY amount DESC LIMIT 4

但我想添加一个包含每个值百分比的新列,我尝试使用这一行:

SELECT MONTH(date) as month, amount, round(amount*100/sum(amount) ,1) as 'percent' from sales where date >='2014-01-01' AND date <='2014-12-31' ORDER BY `amount` DESC LIMIT 4

但它不起作用。我怎么才能得到它?我需要一些帮助。

最佳答案

这是一种方法。提供原始数据片段也有帮助。创建 sql fiddle帮助更多!!

select month, amount, round(amount*100/total,1) as percent
  from 
  (
    select MONTH(date) as month, amount 
      from sales 
      where date >='2014-01-01' AND date <='2014-12-31'
     ORDER BY amount DESC LIMIT 4
  ) c JOIN (
    select sum(amount) as total
      from sales 
      where date >='2014-01-01' AND date <='2014-12-31'
  ) t

关于mysql - 计算特定日期范围内MySQL中每行值的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49619825/

相关文章:

mysql - 当我与同一个表中的一组结果进行比较时,如何显示所有重复的结果

mysql - 我无法进入 "localhost:8080/phpmyadmin"

mysql - MYSQL中多条记录的DELETE查询

mysql - 数据库设计 : dating-site-like application?

Mysql 有条件更新其他表的值

mysql - Codeigniter 在 View 之前转换数据

php - 无法插入我的数据 : PHP/MYSQL on Cloud9

PHP MySQL返回特殊字符

mysql - 选择具有最大数据长度的列名 MySQL

Java MySQL - 如何从每一行和每一列获取信息