1 回答

TA贡献1884条经验 获得超4个赞
你可以做这样的事情
但是对于您拥有的每一列,请决定如何处理它。像MIN(n2.nextgenorder_company_entity),但如果你想保留所有你可以使用GROUP_CONCAT例如
CREATE TABLE nextgenorders2
(`nextgenorder_companyname` varchar(9), `nextgenorder_company_entity` int, `nextgenorder_ordernumber` int, nextgenorder_deliverydate date)
;
INSERT INTO nextgenorders2
(`nextgenorder_companyname`, `nextgenorder_company_entity`, `nextgenorder_ordernumber`,nextgenorder_deliverydate)
VALUES
('Apple', 123, 555123,'2020-11-11'),
('Apple', 123, 555123,'2020-11-11'),
('Telsa', 888, 444444,'2020-11-11'),
('Telsa', 777, 222222,'2020-11-11'),
('Apple NYC', 103, 544523,'2020-11-11'),
('Stack', 222, 511523,'2020-11-11'),
('Stack', 222, 144523,'2020-11-11')
;
✓
✓
SELECT
GROUP_CONCAT(n2.nextgenorder_ordernumber),
#n2.nextgenorder_serial,
MIN(n2.nextgenorder_company_entity),
n2.nextgenorder_companyname,
n2.nextgenorder_deliverydate
FROM
(SELECT REPLACE(`nextgenorder_companyname`,'Apple NYC','Apple') `nextgenorder_companyname`
, `nextgenorder_company_entity`, `nextgenorder_ordernumber`,nextgenorder_deliverydate
FROM nextgenorders2) n2
WHERE n2.nextgenorder_deliverydate='2020-11-11'
GROUP BY n2.nextgenorder_companyname
,n2.nextgenorder_deliverydate
#,n2.nextgenorder_ordernumber
GROUP_CONCAT(n2.nextgenorder_ordernumber) | MIN(n2.nextgenorder_company_entity) | nextgenorder_companyname | nextgenorder_deliverydate
:---------------------------------------- | ----------------------------------: | :----------------------- | :------------------------
555123,555123,544523 | 103 | Apple | 2020-11-11
511523,144523 | 222 | Stack | 2020-11-11
444444,222222 | 777 | Telsa | 2020-11-11
db<>在这里
更多解释
查询的核心是
(SELECT REPLACE(`nextgenorder_companyname`,'Apple NYC','Apple') `nextgenorder_companyname`
, `nextgenorder_company_entity`, `nextgenorder_ordernumber`,nextgenorder_deliverydate
FROM nextgenorders2) n2
这替换了公司名称,因此在这种情况下,Apple NYC成为Apple,这有点耗时,因此您应该考虑创建一个列母公司,但如果只有几个,您可以像我一样手动执行此操作。
Group By被简化为只有公司名称 ,因为这是我们的主要目标,要获得有关该信息的所有信息,交货日期就在那里,因为通常您会查找整个星期,因此如果您决定查看两个或更多日期,它已经分组了。
选择只是一个例子,因为不知道,你正在搜索什么,你的查询没有给我任何线索。
但是基数是针对每一列的,即不在 Group By 子句中,你需要一个聚合函数,以便开发人员必须决定每列他想要查看哪些数据。
在我的情况下,我决定查看所有订单号,如果你只需要你采取的订单数量计数。
该实体不在集团中,因为如果您只想从整体上看公司,我不明白为什么您需要任何实体,最小值只是因为您选择了特斯拉777而不是888,但我不知道您需要它做什么
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报