我有一个查询

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     |
------------------------------------

我希望sourcebytes以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;

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

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

10-09 13:48