sql查询为每个唯一标识符执行

时间:2018-02-26 13:20:41

标签: mysql sql

所以我有一张这样的表:

________________________________________
phone_number  |  phone_vendor  |  status

67834         | A              | OPEN
23836         | B              | OPEN
87483         | C              | CLOSED
72377         | A              | OPEN
63637         | B              | OPEN

我需要在OPEN状态下找到每个唯一phone_vendor的phone_numbers的数量,例如:

A | 2
B | 2
C | 0

使用group by我不会让OPEN计数已经用尽的供应商(如上例中的C所示)

什么是合适的查询? 此外,我不能使用CASE,因为会有多个供应商。

查询尝试:

SELECT status, count(phone_number) AS count
FROM phone_number_table
WHERE status = 'OPEN'
GROUP BY phone_vendor, status

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT SUM(CASE WHEN status = 'OPEN' THEN 1 ELSE 0 END) AS count, phone_vendor  
FROM yourtable
Group by phone_vendor

SQL演示:http://sqlfiddle.com/#!9/17e753/4

答案 1 :(得分:1)

您可以查看状态和总和

y = b1 + b2*(1-exp(lambda*t)/(lambda*t)