高级查询计数日期



我正在尝试编写一个查询,该查询将返回事件表中每个事件在销售日期与非销售日期期间下的订单数。

订单表

1
OrderID (PK, INT)OrderDate (DATE)EventID (INT,FK )
2022-01-011
22022-01-121
32022-01-011
42022-03-102
52022-03-152

您可以按事件数据分组以获得您想要的结果

CREATE TABLE Orders  (
`OrderID` INTEGER,
`OrderDate` VARCHAR(10),
`EventID` INTEGER
);
INSERT INTO Orders 
(`OrderID`, `OrderDate`, `EventID`)
VALUES
('1', '2022-01-01', '1'),
('2', '2022-01-12', '1'),
('3', '2022-01-01', '1'),
('4', '2022-03-10', '2'),
('5', '2022-03-15', '2');
CREATE TABLE Event  (
`EventID` INTEGER,
`NameEvent` VARCHAR(23),
`OnSalesDate` VARCHAR(10)
);
INSERT INTO Event 
(`EventID`, `NameEvent`, `OnSalesDate`) 
VALUES
('1', 'The Rolling Stones', '2022-01-01'),
('2', 'The Who Live in Concert', '2022-03-10');
SELECT `NameEvent`,`OnSalesDate`
, SUM(`OnSalesDate` = `OrderDate`) BoughtOnSalesDate
, SUM(`OnSalesDate` < `OrderDate`)  BoughtAfter
FROM Orders
Left JOIN Event on Orders.EventID = Event.EventID
GROUP  BY Orders.`EventID`, `NameEvent`,`OnSalesDate`
ORDER BY `OnSalesDate`;
名称事件 |发售日期 |已购买销售日期 |买后买 :---------------------- |:---------- |----------------: |----------: 滚石乐队 |2022-01-01 |                2 |          1 谁住在音乐会 |2022-03-10 |                1 |          1

db<>在这里小提琴

最新更新