有没有办法在acCOUNT()中添加条件?

时间:2011-09-21 16:36:25

标签: mysql select count

我想要做的是将COUNT添加到一个连接在多个表上的查询中,但我只想计算符合特定条件的事物。

我希望count只计算具有ReceivedDate的行,如下所示:

COUNT(ReceivedDate = "0000-00-00 00:00:00", plpq.PurchaseOrderID) AS OrdersForPart

有没有办法实现这一目标而不必求助于子查询?

3 个答案:

答案 0 :(得分:2)

只需使用。

SELECT COUNT(plpq.PurchaseOrderID) AS OrdersForPart FROM ... WHERE ReceivedDate = '000-00-00 00:00:00'

应该工作得很好;)

答案 1 :(得分:2)

假设您可能希望对其他行执行某些聚合,因此不能完全将它们排除在WHERE子句中。

COUNT(CASE 
        WHEN ReceivedDate = "0000-00-00 00:00:00" 
        THEN plpq.PurchaseOrderID 
      END) AS OrdersForPart

如果不是这种情况,WHERE条款当然是最佳选择。

答案 2 :(得分:1)

SELECT COUNT(plpq.PurchaseOrderID) 
  AS OrdersForPart 
  FROM table 
  WHERE ReceivedDate = "0000-00-00 00:00:00"