多个计数报表/条件

时间:2016-08-24 15:24:22

标签: sql count

我有以下列:

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中完成,但我想要一个与平台无关的解决方案,因为这可能很快被移植到另一个平台。

2 个答案:

答案 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