gpt4 book ai didi

MySql 表自连接

转载 作者:行者123 更新时间:2023-11-29 22:10:11 25 4
gpt4 key购买 nike

我有下表

sku|date      |price
---|----------|-----
A1 |2015-01-10|3
A2 |2015-01-15|2
A1 |2015-01-20|5
A1 |2015-02-10|2
A2 |2015-02-10|1

我正在尝试获取每月的计数。我想得到下面的输出;

sku|JAN_ORDER|FEB_ORDER|JAN_TOTAL
---|---------|---------|---------
A1 |2 |1 |10
A2 |1 |1 |2

我尝试过自连接和左连接,但没有成功,我有点困惑。

我使用下面的代码得到了错误的结果

select s.sku, count(f.sku)
from database f, database s
where f.sku between '2015-01-01' and '2015-01-31'
and
s.sku=f.sku
group by s.sku

请指教。

最佳答案

就像 Marc B 所说,不需要联接:

SQL Fiddle

MySQL 5.6 架构设置:

CREATE TABLE `database`
(`sku` varchar(2), `date` datetime)
;

INSERT INTO `database`
(`sku`, `date`)
VALUES
('A1', '2015-01-10 00:00:00'),
('A2', '2015-01-15 00:00:00'),
('A1', '2015-01-20 00:00:00'),
('A1', '2015-02-10 00:00:00'),
('A2', '2015-02-10 00:00:00')
;

查询 1:

SELECT sku,
count(IF(month(date) = 1, sku, null)) AS JAN,
count(IF(month(date) = 2, sku, null)) AS Feb
FROM `database`
GROUP BY sku

<强> Results :

| sku | JAN | Feb |
|-----|-----|-----|
| A1 | 2 | 1 |
| A2 | 1 | 1 |

关于MySql 表自连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31754781/

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