【问题标题】:MySQL summing verses and n biggest resultsMySQL总结诗句和n个最大的结果
【发布时间】:2015-08-14 02:45:26
【问题描述】:

我的桌子看起来差不多这样:

**Day**   | **Mileage**
----------------
1     | 13

2     | 2

3     | 25

4     | 15

5     | 20

6     | 8

7     | 17

8     | 12

9     | 16

10    | 5

如何编写 SQL 查询:

  1. 不使用php返回从第一天到第n天的总里程?例如,第 1 天:13、第 2 天:15、第 3 天:40。
  2. 如何在不使用限制的情况下获得5个最大里程?

【问题讨论】:

  • 你尝试了什么?为什么不能使用limit

标签: mysql select sum


【解决方案1】:

总结一下:

select mday, (select SUM(miles) from mm s where s.mday <= mm.mday)  tot_miles
from mm;

对于每天最大的 5 英里数

select mday, miles from mm order by miles desc limit 5

更改列名和表名以匹配您的。

由于你添加了“不使用限制”,这很奇怪,你可以试试这个:

set @r =0;
select * from (
select *, @r :=@r+1 as r from mm order by miles desc) e
where r<=5

【讨论】:

    【解决方案2】:

    既然你不想在这里使用限制是乏味的方式

    1)

    select sum(mileage) from xyz where day between 2 and 15;
    

    2)

    mysql> select @rownum:=@rownum+1 'rank',mileage
    from (select mileage from xyzorder by mileage desc)mil,(select @rownum:=0)r
    where @rownum<5;
    

    【讨论】:

    • 此方法不需要限制
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    相关资源
    最近更新 更多