【问题标题】:How to group in MySQL a column with multiple choices under only one of them?如何在 MySQL 中仅在其中一个下对具有多个选择的列进行分组?
【发布时间】:2021-03-06 10:52:39
【问题描述】:

我有一个表格,其中某个列的数据有时会丢失,在这种情况下只有一个破折号。

但由于还有另一列是唯一的,因此可以从其他行中推断出丢失的数据。

换句话说,我有这样的东西:

Unique model Maker Profit
abcd1234 - 56
zgh675 Company Y 40
abcd1234 Company X 3
zgh675 - 10
abcd1234 Company X 1

我可以使用哪个查询来自动获得以下信息(Maker 列表是动态的,但每个模型只能访问其中一个):

Unique model Maker Profit
abcd1234 Company X 60
zgh675 Company Y 50

?

【问题讨论】:

  • 这个问题不仅有可重现的代码,@Strawberry,而且有人已经用它成功回答了。

标签: mysql group-by


【解决方案1】:

您可以按唯一模型汇总,然后获取制造商的MAX 值以及利润总和:

SELECT model, MAX(maker) AS maker, SUM(profit) AS profit
FROM yourTable
GROUP BY model;

假设每个模型只有一个唯一的非 NULL 值,这种方法应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2017-02-26
    • 2013-01-02
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多