【发布时间】:2011-07-07 09:04:52
【问题描述】:
以下 MySQL 查询为我生成了一个 session_id 列表和相关使用情况。我想做的是将每个会话分组为一行,并显示最大的上传和下载。一个用户名可以有多个重复,它必须在会话中分组。
当我尝试使用 group by 时,并不总是选择最大的。
SELECT USERNAME, ACCTSESSIONID,
IFNULL(ACCTINPUTGW ,0) * POW(2,32) + IFNULL(ACCTINPUTOCT , 0) as TOTAL_UPLOAD,
IFNULL(ACCTOUTPUTGW,0) * POW(2,32) + IFNULL(ACCTOUTPUTOCT, 0) as TOTAL_DOWNLOAD
FROM ACCOUNTING
WHERE DATE_FORMAT(FROM_UNIXTIME(TIME_STAMP), '%Y-%m-%d') = '2011-07-05'
ORDER BY USERNAME ASC, ACCTSESSIONID
-
USERNAME ACCTSESSIONID TOTAL_UPLOAD TOTAL_DOWNLOAD
kor1 SESSION232442 341594114 5671726599
kor1 SESSION232442 331306202 5571382940
kor1 SESSION232444 338083784 5609510490
kor1 SESSION454355 323367019 5451121083
kor2 SESSION943209 323132957 5450522047
ran32 SESSION934082 323132957 5450522047
ran62 SESSIONA34324 9532356 5450523537
【问题讨论】:
-
您在此查询中没有使用 Group by,为什么?尝试使用它!
标签: mysql sorting group-by sql-order-by