我有一张表,其中包含一些城市,餐馆和订单(每家餐厅)的特定年份。 从这个数据集,我有一个问题,指出: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) –