Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何基于不同的键(不同的列)获取列的和_Mysql_Sql_Vertica - Fatal编程技术网

Mysql 如何基于不同的键(不同的列)获取列的和

Mysql 如何基于不同的键(不同的列)获取列的和,mysql,sql,vertica,Mysql,Sql,Vertica,我想知道如何得到乘积的明确和 我的桌子 Name Rating A 3 A 3 B 4 C 3 C 3 我想要的最终结果是 SUM(表1.name和评级时的大小写)/Count(表1.name和评级时的大小写) 最终答案=(3+4+3)/3=10/3=3.33 提前感谢SUM/COUNTAVGso SELECT (SUM(Rating) * 1.0)/COUNT(*) AS result FROM ( SELECT DISTINCT

我想知道如何得到乘积的明确和

我的桌子

Name Rating
 A     3
 A     3
 B     4
 C     3
 C     3
我想要的最终结果是
SUM(表1.name和评级时的大小写)/Count(表1.name和评级时的大小写)
最终答案=(3+4+3)/3=10/3=3.33

提前感谢

SUM/COUNT
AVG
so

SELECT (SUM(Rating) * 1.0)/COUNT(*)  AS result
FROM (
  SELECT DISTINCT *
  FROM tab
  ) AS sub;
SELECT AVG(Rating)  AS result
FROM (
  SELECT DISTINCT *
  FROM tab
  ) AS sub;
可以是:

SELECT (SUM(Rating) * 1.0)/COUNT(*)  AS result
FROM (
  SELECT DISTINCT *
  FROM tab
  ) AS sub;
SELECT AVG(Rating)  AS result
FROM (
  SELECT DISTINCT *
  FROM tab
  ) AS sub;

只是另一种观点

查找每个名称的平均评分,然后查找分组的平均评分

查询

select avg(t.`avg`) as `avg` from
(
  select Name,
  avg(rating) as `avg`
  from your_table_name
  group by Name
)t;

这是另一种观点,它完全被打破了。例子。平均值的平均值与数据集的平均值不同。在您的特定示例中,组中的所有数据都是相同的,但当您有不同的值时,它将失败,例如(A,3),(A,1)。@lad2025:在创建的示例中,它应该是3.1111。让我们计算一下(3+4+3+1)/4=2.75为什么您的问题被标记为Vertica和MySQL?