3

我现在有一张看起来像这样的表:

Day  Limit  Price  
1   52      0.3  
1   4       70  
1   44      200  
1   9       0.01   
1   0       0.03  
1   0       0.03  
2   52      0.4  
2   10      70  
2   44      200      
2   5       0.01   
2   0       0.55   
2   2       50

有没有一种方法可以使用 SQL 将结果操作到具有不同价格类别的表中,并选择与其价格相对应的限制的最大值?

Day   0-10   10-100     100+  
 1     52       4        44  
 2     52      10        44
4

1 回答 1

2

您可以使用CASEMAX

SELECT Day,
  MAX(CASE WHEN Price BETWEEN 0 AND 10 THEN Limit ELSE 0 END) as ZeroToTen,
  MAX(CASE WHEN Price BETWEEN 10 AND 100 THEN Limit ELSE 0 END) as TenToHundred,
  MAX(CASE WHEN Price > 100 THEN Limit ELSE 0 END) as HundredPlus
FROM YourTable
GROUP BY Day

这是小提琴

顺便说一句——如果您使用的是 MySQL,请在 LIMIT 周围添加刻度,因为它是一个关键字。

祝你好运。

于 2013-02-08T02:19:47.273 回答