美好的一天!我想添加字段“duration and dials”
这是我的mysql查询:
select
u.dialer_display_name,
u.dialer_ext,
sum(dl.duration/60) as duration,
count(dl.dial_id) as dials
from leads.dial_log as dl
left join leads.users as u on u.user_id=dl.user_id
where date(dl.dial_date) = date(now())
and u.dialer_display_name != ''
group by dl.user_id order by dials DESC
所以我想要实现的是添加持续时间和拨号并将它们别名为mets。
类似的东西:
选择总和(持续时间+拨号)作为mets
如何构建查询?谢谢!
答案 0 :(得分:0)
只需添加构成相应列的两个术语:
SELECT u.dialer_display_name,
u.dialer_ext,
SUM(dl.duration/60) AS duration,
COUNT(dl.dial_id) AS dials,
SUM(dl.duration/60) + COUNT(dl.dial_id) AS mets -- here is your column
FROM leads.dial_log AS dl
LEFT JOIN leads.users AS u
ON u.user_id = dl.user_id
WHERE DATE(dl.dial_date) = DATE(NOW()) AND
u.dialer_display_name != ''
GROUP BY dl.user_id
ORDER BY dials DESC
答案 1 :(得分:-1)
您需要重复逻辑,因为您无法重复使用别名:
select u.dialer_display_name, u.dialer_ext,
sum(dl.duration/60) as duration,
count(dl.dial_id) as dials,
(sum(dl.duration/60) + count(dl.dial_id) ) as mets
from leads.dial_log dl join
leads.users u
on u.user_id = dl.user_id
where dl.dial_date >= curdate() and
dl.dial_date < date_add(curdate(), interval 1 day) and
u.dialer_display_name <> ''
group by u.dialer_display_name, u.dialer_ext
order by dials DESC;
注意:
where
的{{1}}中的比较已被两次比较所取代。这允许使用索引(如果可用)。date()
已替换为date(now())
。curdate()
已修改为与group by
。select
已替换为内部联接。 left join
条款取消where
,因此不会产生误导。我还会说left join
似乎很奇怪。我怀疑你想要以下之一:
count(dl.dial_id)