计算列中每个值的所有出现次数

时间:2016-09-08 00:23:04

标签: mysql

我希望我的问题能被理解...... 如何获取某个外键列中可以找到的每个值的行总和?

示例:

enter image description here

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

所以示例结果如下:3(3x“2”)和2(2x“5”)

提前致谢!

2 个答案:

答案 0 :(得分:3)

这是一个非常简单的group by问题。 MySQL和所有其他SQL方言中有许多聚合函数。有些因方言而异,所以请务必阅读the documentation以查看是否存在适合您用例的内容。

在您的特定情况下,您希望按值和外键分组(例如,值= 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' s的数量)和2(5'的数量),在这种情况下,正确的查询将是上面编辑的。

答案 1 :(得分:0)

SELECT COUNT(value) AS nb_value, value, `foreign key`  
FROM table_name
WHERE `foreign key`=1
GROUP BY value, `foreign key`;

" nb_values" :结果的别名。它是可选的,但它使事情更清晰。
" table_name" :您从中提取数据的表的名称。

那应该从名为table_name的表中输出值为1的值作为id / key。

有关详细说明,请参阅w3schools