我有一張表,其中包含一些城市,餐館和訂單(每家餐廳)的特定年份。 從這個數據集,我有一個問題,指出:PostgreSQL,CASE WHEN和IF
- 在城市中,平均訂單超過120,餐廳不到100順序應中止更高。
- 在平均訂單高於60的城市,訂單少於40的餐館應該放棄。
- 在平均訂單高於30的城市,訂單少於20的餐館應該放棄。
到現在爲止,我已經創建了一個查詢,可以給我一個表的平均訂單爲每個城市和其標記爲1,2,3或4如下:
SELECT cities, AVG(orders), COUNT(restaurants),
CASE
WHEN (AVG(orders) >= 120) THEN '1'
WHEN (120 > AVG(orders) >= 60) THEN '2'
WHEN (60 > AVG(orders) >= 30) THEN '3'
ELSE '4'
END AS ranking
FROM c_cities
GROUP BY 1
所以,現在我想創建一個聲明,例如: 評級= 1,如果訂單> 100 - >保留它們或將它們標記爲某物。 評分= 2,如果訂單> 60 - >相似等。
我想找到它的邏輯和正確的說法。 我認爲,一個CASE ...什麼時候解決不了我的問題。 我正在閱讀IF語句的文檔,但我無法使其工作。
我將是我遵循的邏輯在你的要點任何幫助,您可以提供:)
請根據這些數據添加一些示例數據和預期輸出(_formatted_ text please,no screenshots or even better:'create table' and'insert' statements) –