Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 - Fatal编程技术网

Mysql 计算列中每个值的所有发生次数

Mysql 计算列中每个值的所有发生次数,mysql,Mysql,我希望我的问题能被理解。。。 如何获得某个外键在列中可以找到的每个值的行总数 例如: 在这里,我想计算外键为1的“value”列中每个值的出现次数 因此,示例结果如下:3(3x“2”)和2(2x“5”) 提前谢谢 这是一个非常简单的问题。MySQL和所有其他SQL方言中都有许多聚合函数。有些方言因方言而异,所以一定要阅读,看看是否存在适合您的用例的东西 在您的特定情况下,您希望按值和外键进行分组(例如,值=2,外键=1是一个组,值=5,外键=1是一个不同的组),计算每个组中的值: SELECT

我希望我的问题能被理解。。。 如何获得某个外键在列中可以找到的每个值的行总数

例如:

在这里,我想计算外键为1的“value”列中每个值的出现次数

因此,示例结果如下:3(3x“2”)和2(2x“5”)

提前谢谢

这是一个非常简单的问题。MySQL和所有其他SQL方言中都有许多聚合函数。有些方言因方言而异,所以一定要阅读,看看是否存在适合您的用例的东西

在您的特定情况下,您希望按值和外键进行分组(例如,值=2,外键=1是一个组,值=5,外键=1是一个不同的组),计算每个组中的值:

SELECT 
  COUNT(value) AS count,
  value,
  foreign_key
FROM my_table
GROUP BY value, foreign_key
祝你好运

编辑:

我从原始问题的这一部分读到:

3 (3x "2") and 2 (2x "5")
期望输出为6(3 x 2)和10(2 x 5)。我现在看到期望的输出可能是3(2的计数)和2(5的计数),在这种情况下,正确的查询将是上面编辑的查询

SELECT COUNT(value) AS nb_value, value, `foreign key`  
FROM table_name
WHERE `foreign key`=1
GROUP BY value, `foreign key`;
“nb_值”:结果的别名。它是可选的,但会让事情变得更清楚。
“表名称”:从中提取数据的表的名称

它应该输出名为table_name的表中的值的数量,其中1作为id/键


有关详细说明,请参见。

您希望
COUNT
而不是
SUM
。缺少
分组依据
子句。您的查询将只返回1,即ID为1的行数。谢谢,但我实际上需要知道列中每个不同值的计数。据我所知,您的建议将只返回该列中不同值的计数(基本上它只返回1个值,但我需要n个值,因为n是该列中不同值的数量)@HansGerber我添加了distinct子句,因此每个值将只计算一次。出于几个原因,这仍然不正确。COUNT DISTINCT不计算组内发生的次数,它计算组内发生的不同次数。如果Hans执行您的查询,他将在每个组中得到1个不同值的答案,无论每个组有1个或100个事件。第二个问题是,如果Hans想知道不止一个外键的计数,那么它就无法扩展。非常感谢您的时间和批评。我已经更新了我的问题和答案。即使询问者已经转到其他地方。但我不确定我是否理解比例部分。