带条件的 SQL Sum() 函数

问题描述 投票:0回答:1

这在 SQL 中是如何工作的

sum(o.product_name='Bread') > 0
, 例如,如果订单表 (o) 具有 Product_name 列,使得条目为 Bread,则条件将
o.product_name='Bread'
将 1 返回给 sum 函数,然后 sum 函数会将所有这些相加?

问题是:有2桌顾客,下单。查找购买面包和牛奶但不购买鸡蛋的顾客

Select  c.customer_id , c.customer_name
        FROM customers as c 
        left join
           orders as o
           on c.customer_id = o.customer_id
        group by c.customer_id , c.customer_name
        having 
        sum(o.product_name='Bread') > 0 
        and sum(o.product_name='Milk') > 0
        and sum(o.product_name='Eggs') = 0
        order by c.customer_name
Select  c.customer_id , c.customer_name
        FROM customers as c 
        left join
           orders as o
           on c.customer_id = o.customer_id
        group by c.customer_id , c.customer_name
        having 
        sum(o.product_name='Bread') > 0 
        and sum(o.product_name='Milk') > 0
        and sum(o.product_name='Eggs') = 0
        order by c.customer_name
sql function join sum having
1个回答
0
投票

sum
函数只是统计每个客户的product_name分别为牛奶、面包、鸡蛋的订单记录总数

© www.soinside.com 2019 - 2024. All rights reserved.