根据每天 2 列的总和选择前 n 条记录

先生

我有一个包含示例数据的表,如下所示:

Date                | hostname   |bytesIn|bytesOut|
2018/02/26 11:57:37 | abc.com    | 100   | 500
2018/02/26 11:57:37 | abc.com    | 50    | 500
2018/02/25 11:57:37 | xyz.com    | 100   | 300
2018/02/25 11:57:37 | abc.com    | 100   | 500
2018/02/25 11:57:37 | def.com    | 200   | 500

我想根据每天的总字节数(bytesIn+bytesOut)选择前 n 条记录。我需要计算 bytesIn 和 bytesOut 列的总和并格式化日期列(省略 hh:mm:ss 部分)以获得特定主机名的每日总字节数。然后我需要根据总字节数获取每天的前 n 个主机名。例如,我需要获取每天消耗带​​宽最多的主机名。

我看到了类似的问题,但无法将答案应用于我的问题。我怎样才能得到这些记录?

预期的输出应该是这样的(比方说,根据带宽的前 2 个主机名):

2018/02/26 | abc.com | 600
2018/02/26 | xyz.com | 550
2018/02/25 | def.com | 750
2018/02/25 | qwe.com | 300
2018/02/24 | asd.com | 550
2018/02/24 | sdf.com | 520
阿比拉什·拉文德兰 CK

以下查询对您有帮助,

select hostname, Dates, totalBytes
from  
    ( select @prev := '', @n := 0 ) init
join  
    ( select @n := if( Dates != @prev, 1, @n + 1) AS n,
             @prev := Dates,
             hostname, Dates, totalBytes
      from ( select hostname,DATE_FORMAT(dates, '%Y/%m/%d') as Dates,
                    (sum(bytesIn) + sum(bytesOut)) totalBytes
             from your_table
             group by hostname,dates
             order by  Dates desc, totalBytes desc
           ) T1
     ) T2       
where n <= 2

n 指定每天的记录数。

单击此处查看 SQL Fiddle 演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择每个实体的前N条记录

来自分类Dev

每组只选择前 2 条记录

来自分类Dev

根据列值检索熊猫数据框的过去 n 条记录

来自分类Dev

从每个组中选择前n条记录

来自分类Dev

MySQL选择每组嵌套的前n条记录

来自分类Dev

前n条记录的平均值?

来自分类Dev

选择前N条后选择最后一条记录

来自分类Dev

根据位置和位置按顺序随机2条记录

来自分类Dev

根据 2 种排序条件更新 1 条记录

来自分类Dev

根据特定列排序后如何获取除前5条记录以外的所有记录

来自分类Dev

Alteryx 选择前 N 条记录,其中 N = 该组上的一个值

来自分类Dev

选择N-1条记录进行更新

来自分类Dev

SQL查询,每个条件最多选择N条记录

来自分类Dev

选择N条记录语句未返回正确的金额

来自分类Dev

sql: 选择 count(*) - 每组的第 n 条记录

来自分类Dev

仅显示前n条记录,并在XML中添加“ ...”

来自分类Dev

使用Postgresql查询检索JSON数组的前N条记录

来自分类Dev

访问中每个组sql的前n条记录

来自分类Dev

Oracle:根据Created_On时间戳删除旧记录,为用户保留最新的n条记录

来自分类Dev

Oracle:根据Created_On时间戳删除旧记录,为用户保留最新的n条记录

来自分类Dev

Mysql为每个组选择最近的2条记录[用户]

来自分类Dev

如何确定Javascript数组对象中的前2条记录

来自分类Dev

从数据框中选择事件出现前的最后n条记录

来自分类Dev

遍历Dataobject时,如何每列显示2条记录?

来自分类Dev

SQL查询仅从4条记录中选择2条-MySQL Workbench

来自分类Dev

根据总和选择列

来自分类Dev

从一个随机列MySQL中选择2条随机记录

来自分类Dev

有什么方法可以从表1中获得TOP N条记录,其中N条基于表2

来自分类Dev

根据另一列选择前n列

Related 相关文章

  1. 1

    选择每个实体的前N条记录

  2. 2

    每组只选择前 2 条记录

  3. 3

    根据列值检索熊猫数据框的过去 n 条记录

  4. 4

    从每个组中选择前n条记录

  5. 5

    MySQL选择每组嵌套的前n条记录

  6. 6

    前n条记录的平均值?

  7. 7

    选择前N条后选择最后一条记录

  8. 8

    根据位置和位置按顺序随机2条记录

  9. 9

    根据 2 种排序条件更新 1 条记录

  10. 10

    根据特定列排序后如何获取除前5条记录以外的所有记录

  11. 11

    Alteryx 选择前 N 条记录,其中 N = 该组上的一个值

  12. 12

    选择N-1条记录进行更新

  13. 13

    SQL查询,每个条件最多选择N条记录

  14. 14

    选择N条记录语句未返回正确的金额

  15. 15

    sql: 选择 count(*) - 每组的第 n 条记录

  16. 16

    仅显示前n条记录,并在XML中添加“ ...”

  17. 17

    使用Postgresql查询检索JSON数组的前N条记录

  18. 18

    访问中每个组sql的前n条记录

  19. 19

    Oracle:根据Created_On时间戳删除旧记录,为用户保留最新的n条记录

  20. 20

    Oracle:根据Created_On时间戳删除旧记录,为用户保留最新的n条记录

  21. 21

    Mysql为每个组选择最近的2条记录[用户]

  22. 22

    如何确定Javascript数组对象中的前2条记录

  23. 23

    从数据框中选择事件出现前的最后n条记录

  24. 24

    遍历Dataobject时,如何每列显示2条记录?

  25. 25

    SQL查询仅从4条记录中选择2条-MySQL Workbench

  26. 26

    根据总和选择列

  27. 27

    从一个随机列MySQL中选择2条随机记录

  28. 28

    有什么方法可以从表1中获得TOP N条记录,其中N条基于表2

  29. 29

    根据另一列选择前n列

热门标签

归档