计算表中的出现次数(MySQL)

Posted

技术标签:

【中文标题】计算表中的出现次数(MySQL)【英文标题】:Count occurrence in a table (MySQL) 【发布时间】:2017-09-22 08:01:23 【问题描述】:

所有,我有一个有两列的表,可以有任意数量的行,类型和位置名称可以是任何名称,尽管类型始终按字母顺序排列 -

Type    Location

Inmate  Holding
Inmate  Holding
Inmate  Processing
Person  Processing
Person  Reception
Person  Reception
Person  Reception
Visitor Processing
Visitor Reception
Visitor Reception

我需要计算类型相对于位置的出现次数,所以结果是 -

Quantity    Type    Location

2   Inmate  Holding
1   Inmate  Processing
1   Person  Processing
3   Person  Reception
1   Visitor Processing
2   Visitor Reception

我曾想过使用 select Type(Count* 等,但这只是添加了所有类型并告诉我有 10 个(行)并选择不同的 Type(Count 似乎不起作用。

我相信我可以用变量来做到这一点,检测类型或位置名称的变化等,但我不希望必须创建存储过程(在 mysql 中)。

还有其他方法吗?

问候,活跃

【问题讨论】:

"类型始终按字母顺序排列" 关系数据库中的数据是集合,因此它们是无序的。 【参考方案1】:

试试:

select Type, Location , count(*) from table group by Type, Location;

【讨论】:

感谢 Umais 和 Krishnakumar(工作正常)。幸运的是,这个论坛包括比我更有逻辑性的人。 很高兴能提供帮助。如果对您有好处,您可以接受解决方案作为答案 可悲的是,您如何接受解决方案作为答案,如果它对您有好处对我来说并不明显,似乎没有按钮/链接可以这样做,所以我在此评论中接受您的回答. 啊,找到了(大勾号)。【参考方案2】:

您是否尝试过按两列分组并在 select 中将计数排在其他列之前。

SELECT COUNT(*), Type, Location from TABLE GROUP BY Type, Location

【讨论】:

以上是关于计算表中的出现次数(MySQL)的主要内容,如果未能解决你的问题,请参考以下文章

计算具有3个列值的行的出现次数相同的MySQL

如何提取 MySQL 字符串中的第 n 个单词并计算单词出现次数?

SQL计算第二个表中一个表中单词的出现次数

计算每个值在 PostgreSQL 表中出现的次数?

Transact-SQL计算整个表中所有值的出现的次数

如何计算某些值在 SQL 表中出现的次数并在列中返回该数字?