在 MySQL 中,COUNTIF
函數并不存在,但你可以使用 COUNT()
和 CASE
語句來實現類似的功能
假設我們有一個名為 orders
的表,其中包含以下列:order_id
、customer_id
和 order_date
。現在,我們想要統計每個客戶在特定日期范圍內的訂單數量。
首先,我們需要創建一個子查詢,該查詢將根據給定的條件(例如,特定日期范圍)篩選訂單。然后,我們可以使用 COUNT()
和 CASE
語句來計算滿足條件的訂單數量。
以下是一個示例查詢,該查詢統計了每個客戶在 2021 年 1 月 1 日至 2021 年 1 月 31 日之間的訂單數量:
SELECT
customer_id,
COUNT(CASE WHEN order_date BETWEEN '2021-01-01' AND '2021-01-31' THEN 1 ELSE NULL END) AS orders_count
FROM
orders
WHERE
order_date BETWEEN '2021-01-01' AND '2021-01-31'
GROUP BY
customer_id;
在這個查詢中,我們首先使用 WHERE
子句篩選出特定日期范圍內的訂單。然后,我們使用 COUNT()
和 CASE
語句計算每個客戶的訂單數量。CASE
語句會在 order_date
在指定范圍內時返回 1,否則返回 NULL
。COUNT()
函數會計算非空值的數量,從而得到滿足條件的訂單數量。最后,我們使用 GROUP BY
子句按客戶分組結果。