我希望我的问题能被理解...... 如何获取某个外键列中可以找到的每个值的行总和?
示例:
这里我想计算外键为1的“value”列中每个值的出现次数。
所以示例结果如下:3(3x“2”)和2(2x“5”)
提前致谢!
答案 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。