将字节列转换或显示为 MB 的 SQL 查询?

标签 sql syntax

我有一个查询

select 
   sourceIP, SUM(sourceBytes) 
from 
   flows 
where 
   sourceBytes > 1000000 
group by 
   sourceIP

此查询将带来在特定时间范围内所有流中发送超过 100 万字节的 IP 地址,您必须输入

结果类似于
------------------------------------
| sourceIP       | SUM_sourceBytes |
------------------------------------
| 64.124.201.151 |   4282590.0     |
| 10.105.2.10    |   4902509.0     |
| 10.103.70.243  |   2802715.0     |
| 10.103.77.143  |   3313370.0     |
| 10.105.32.29   |   2467183.0     |
| 10.105.96.148  |   8325356.0     |
| 10.103.73.206  |   1629768.0     |
------------------------------------

我希望源字节显示为 MB 格式。我需要一个嵌套的查询吗?谢谢。

最佳答案

使用这个表达式。 CONCAT 是 SQL Server 2012+ 并处理数据类型

 ...CONCAT(SUM(sourceBytes) / 1048576.0, 'MB')..

例子:
SELECT
    sourceIP, CONCAT(SUM(sourceBytes) / 1048576.0, 'MB')
FROM
    (VALUES ('10.105.2.10', 4902509.0), ('10.103.70.243', 2802715.0))
    AS flows (sourceIP, sourceBytes)
WHERE 
    sourceBytes > 1000000
GROUP BY
    sourceIP;

否则,您想要的预期输出是什么>

关于将字节列转换或显示为 MB 的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25176247/

相关文章:

javascript - javascript中点符号和括号符号之间的区别

C++11 可变参数函数类型模板参数

php - 解析错误: syntax error, unexpected end of file in FUNCTIONS.PHP ON LINE 62 [duplicate]

c++ - 与 C++ Exception throw 语句混淆

php - 什么是我的查询获得快速结果的好索引?

php - 将发布日期与 Codeigniter 中的时间戳进行比较

java - 使用 MyBatis 3 插入对象列表

MATLAB 脚本代码和函数代码在同一个文件中?

java - 如何形成 jdbcTemplate 的查询

sql - 如何在我的 SQL Server 代理作业中创建一个步骤来运行我的 SSIS 包?