【发布时间】:2013-01-24 14:36:28
【问题描述】:
ROLLUP有问题,行有空值,ROLLUP也返回null,如何区分ROLLUP的空值和行的空值?
行中存在空值是因为列 (group_name) 与左连接相关联。
这是我的查询:
SELECT gr.info,
HOUR(cdr.calldate) AS hour,
DATE(cdr.calldate) AS date,
COUNT(DISTINCT cdr.uniqueid) AS count,
pl.number,
IFNULL(ugr.group_name, "") AS group_name
FROM cdr
INNER JOIN callinfo AS ci
ON ci.uniqueid = cdr.uniqueid
LEFT JOIN users AS usr
ON usr.username = ci.agent
LEFT JOIN groups AS ugr
ON ugr.group_id = usr.group_id
INNER JOIN pstnline AS pl
ON ci.line = pl.number
INNER JOIN hunt_line AS gri
ON gri.pstnline_id = pl.pstnline_id
INNER JOIN hunt AS gr
ON gri.hunt_number = gr.number
WHERE cdr.calldate >='2012-12-01 00:00'
AND cdr.calldate <='2013-01-24 10:45'
GROUP BY group_name WITH ROLLUP
我看到SQL Server中有一个叫GROUPING的函数,但是在MySql中不存在,我怎样才能达到同样的效果呢?
【问题讨论】:
-
神圣的意识流。格式化查询,使其可读,因为更容易阅读 == 更容易提供帮助。
标签: mysql sql function grouping rollup