我有一个包含以下列的集合表1:
id (INT)
col1 (VARCHAR)
col2 (VARCHAR)
value (INT)
我想分别计算平均数 col1
通过 col2
有这样的回答:
{
averageByCol1: {col1Value1: 23, col1Value2: 44},
averageByCol2: {col2Value1: 33, col2Value2: 91}
}
尝试在“分组依据”中使用多个列,但这会合并以下列:
SELECT
CONCAT(col1, col2, AVG(value))
FROM table1
GROUP BY col1, col2
也尝试过子查询,但它给了我 Subquery returns more than 1 row
错误:
SELECT
(SELECT
CONCAT(col1, AVG(value))
FROM table1
GROUP BY col1) AS col1Averages,
(SELECT
CONCAT(col2, AVG(value))
FROM table1
GROUP BY col2) AS col2Averages;
使用mysql v5.5。
使用示例数据编辑:
id col1 col2 value
1 v1 b1 34
2 v2 b1 65
3 v1 b1 87
4 v1 b2 78
5 v2 b2 78
6 v1 b2 12
想要平均 value
由v1、v2、b1和b2独立完成。
3条答案
按热度按时间amrnrhlw1#
这将起作用:
sql语句fiddle:http://sqlfiddle.com/#!9/c1f111/5/0年
ix0qys7i2#
如果要对单独的结果进行两次查询:
以及
5cnsuln73#
对要计算平均值的每列使用并集