我有桌面订单
orders (
id int unsigned not null,
fcr_date TIMESTAMP,
completion_date TIMESTAMP,
factory_no varchar(255),
vendor_no varchar(255))
请忽略数据类型拼写错误(如果有)。
我想写一个sql查询,帮助我获取每个供应商工厂的数据。要获取的数据包括每个供应商工厂的订单数(vendor_no,factory_no的唯一组),vendor_no,factory_no以及fcr_date大于completion_date的订单数。
我是sql的新手,这个特殊的查询对我来说似乎很复杂。如果有人可以指导我如何编写此查询,我将不胜感激。
感谢。
答案 0 :(得分:3)
您可以尝试这样的事情
SELECT vendor_no,
factory_no,
COUNT(1),
SUM(CASE WHEN fcr_date > completion_date THEN 1 ELSE 0 END)
FROM @orders
GROUP BY vendor_no,
factory_no
答案 1 :(得分:1)
SELECT vendor_no,
factory_no,
COUNT(id),
SUM(IF(fcr_date > completion_date, 1, 0))
FROM orders
GROUP BY vendor_no, factory_no;
适用于MySQL。
答案 2 :(得分:0)
Ishu,将列命名为'percent'之外的其他内容,因为百分比可能是pgsql函数!