SQL 计算一列中的出现次数并计算另一列中的总数
SQL Count occurrences in a column and calculate total of another
我有一个导出的 table 结果是这种格式:
THENAME | THESTATUS | THECOST
----------------------------------
name1 | statusX | cost1.1
name1 | statusX | cost1.2
name2 | statusZ | cost2.1
name2 | statusZ | cost2.1
name3 | statusY | cost3.1
(...)
nameN | status(X,Y,Z) | cost
每个 nameN 将始终具有相同的状态,但成本将不同。我试图想出一个看起来像这样的结果
Status Groups | Count of Names | Total Cost of Group
X 2 10
Y 5 20
Z 4 5
基本上,显示每个状态的总成本和每个状态包含的项目数。
想要
SELECT
thestatus,
COUNT(DISTINCT thestatus),
SUM(thecost)
FROM THETABLE
GROUP BY thestatus
不起作用,我在想是否有可能同时将两列分组..
编辑 - https://www.db-fiddle.com/f/bB1RSy8GV35FGEi3Lr1Tqw/0
编辑 - 不确定它是 MySQL 的版本还是什么,但在示例数据中我认为它工作正常但在实际查询中不工作。重新创建整个模式和整个查询是不可能的,但也许是其他原因...
你可以像下面这样尝试,删除不同的
SELECT
THESTATUS,
COUNT(THENAME),
SUM(THECOST)
FROM THETABLE
GROUP BY thestatus
SELECT
DISTINCT THESTATUS as 'Status groups',
COUNT(THENAME) AS 'Count of Names',
SUM(THECOST) as 'Total Cost of Group'
FROM THETABLE GROUP BY THESTATUS
我有一个导出的 table 结果是这种格式:
THENAME | THESTATUS | THECOST
----------------------------------
name1 | statusX | cost1.1
name1 | statusX | cost1.2
name2 | statusZ | cost2.1
name2 | statusZ | cost2.1
name3 | statusY | cost3.1
(...)
nameN | status(X,Y,Z) | cost
每个 nameN 将始终具有相同的状态,但成本将不同。我试图想出一个看起来像这样的结果
Status Groups | Count of Names | Total Cost of Group
X 2 10
Y 5 20
Z 4 5
基本上,显示每个状态的总成本和每个状态包含的项目数。
想要
SELECT
thestatus,
COUNT(DISTINCT thestatus),
SUM(thecost)
FROM THETABLE
GROUP BY thestatus
不起作用,我在想是否有可能同时将两列分组..
编辑 - https://www.db-fiddle.com/f/bB1RSy8GV35FGEi3Lr1Tqw/0
编辑 - 不确定它是 MySQL 的版本还是什么,但在示例数据中我认为它工作正常但在实际查询中不工作。重新创建整个模式和整个查询是不可能的,但也许是其他原因...
你可以像下面这样尝试,删除不同的
SELECT
THESTATUS,
COUNT(THENAME),
SUM(THECOST)
FROM THETABLE
GROUP BY thestatus
SELECT
DISTINCT THESTATUS as 'Status groups',
COUNT(THENAME) AS 'Count of Names',
SUM(THECOST) as 'Total Cost of Group'
FROM THETABLE GROUP BY THESTATUS