gpt4 book ai didi

mysql - 忽略where子句sql中的某些列

转载 作者:行者123 更新时间:2023-11-29 05:04:28 27 4
gpt4 key购买 nike

我已经创建了一个测试数据库来尝试解决这个问题。我创建了一个销售表,其中有一个数量,sale_made(销售时)和表中的项目描述。我试图通过只使用一个表来做到这一点,我想获得所有售出项目的总和, 整体售出的商品数量和销售商品总天数的一半。这是我的查询

select sum(amount) as 'total amount for all items sold'
,count(amount) as 'Total items sold',
count(sale_made)as 'half total days' from sales where sale_made BETWEEN "2018-07-02" and "2018-07-05" ;

查询有效,但 where 子句影响总和(金额)和售出商品的数量。有没有办法让 where 子句不影响前两列?

我试过自连接表并使用表别名,但这没有什么区别

最佳答案

你想要条件聚合:

select sum(amount) as `total amount for all items sold`,
count(amount) as `Total items sold`,
sum(sale_made between '2018-07-02' and '2018-07-05') as `half total days`
from sales;

注意事项:

  • 单引号用于字符串和日期常量(ANSI 标准)。这就是我将双引号更改为单引号的原因。
  • MySQL 使用反引号转义名称。我不喜欢需要引用的列别名,但您正在使用它们,所以我选择了反引号(双引号也可以)。
  • MySQL 有一种方便的速记方式,可以将 bool 值视为数字上下文中的整数,“1”表示真,“0”表示假。因此对第三列使用 sum()

关于mysql - 忽略where子句sql中的某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com