我有以下列:
Product_ID,sale_price,sale_count,sale_state
9923842,49.99,329,CA
2940820,55.25,430,WA
2039483,32.45,23,OR
9348234,55.02,26,NY
1948134,99.42,200,VA
3948579,43.49,994,MA
2034209,934.3,430,FL
我正在尝试查找sale_count为>的州海岸的计数。 100基于西海岸与东海岸(CA和OR是西海岸,纽约和MA在东部等等)。 结果如下:
coast,count,total_count
East,3,4
West,2,3
...其中total_count是该海岸的州总数,与销售额无关
我能想到的唯一方法是创建一个包含状态/海岸映射的表,然后将其用作参考。 有没有更好的方法,而不必诉诸临时表?
这目前正在MySQL中完成,但我想要一个与平台无关的解决方案,因为这可能很快被移植到另一个平台。
答案 0 :(得分:0)
这是一种标准的ANSI方式,我希望
SELECT 'East' AS Coast,
SUM(CASE WHEN sale_count > 100 THEN 1 ELSE 0 END) AS cnt,
COUNT(*) AS total_count
FROM table
WHERE sale_state IN ('NY','MA')
UNION ALL
SELECT 'West' AS Coast,
SUM(CASE WHEN sale_count > 100 THEN 1 ELSE 0 END) AS cnt,
COUNT(*) AS total_count
FROM table
WHERE sale_state IN ('CA','OR')
我来自欧盟,所以我让你完成各州的工作。列表...
答案 1 :(得分:0)
编辑:这个包含上面评论中描述的count和total_count
CLASSPATH