统计表中的项目,涉及的表字段枚举类型

Posted

技术标签:

【中文标题】统计表中的项目,涉及的表字段枚举类型【英文标题】:Count items in table, table field enum type involved 【发布时间】:2014-01-29 02:16:03 【问题描述】:

我有一个名为animals 的基本表,其中包含两个字段nametype。字段type 是一个具有以下值的枚举字段:enum('dog','cat','horse','zebra','lion')。我正在尝试运行查询并计算每个物种的数量以及指定该物种的名称。例如,预期结果将显示类似 dog=2, cat=2, etc. 的内容。在下面的查询中,我可以计算animals 的总数,但不能分解为物种和名称的数量。我怎么能这样做? SQLFIDDLE

查询:

select COUNT(type) from animals

表架构:

CREATE TABLE animals 
(
 name varchar(20),      
 type enum('dog','cat','horse','zebra','lion') 
 );

INSERT INTO animals
(name, type)
VALUES
('Bertha', 'horse'),
('Louis', 'cat'),
('Gina', 'cat'),
('Rafa', 'lion'),
('lilo', 'dog'),
('kilo', 'dog'),
('stripy', 'zebra');

【问题讨论】:

【参考方案1】:

使用GROUP BYCOUNT 按类型计算动物数量。

试试这个:

SELECT a.type, COUNT(1) AS Cnt
FROM animals a 
GROUP BY a.type;

查看SQL FIDDLE DEMO

输出

|  TYPE | CNT |
|-------|-----|
|   dog |   2 |
|   cat |   2 |
| horse |   1 |
| zebra |   1 |
|  lion |   1 |

【讨论】:

【参考方案2】:

你是说

select type, COUNT(*) from animals
group by type

SqlFiddle

【讨论】:

【参考方案3】:

您可以使用按类型分组来获取每种动物类型的计数。这是相同的查询。

SELECT type,COUNT(*) FROM 动物 分组type

类型计数(*)


狗 2 猫 2 马 1 斑马 1 狮子 1

【讨论】:

以上是关于统计表中的项目,涉及的表字段枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

Apache Cayenne:处理 Postgresql 枚举类型

mybatis字段映射枚举类型

向架构构建器中的枚举类型字段添加默认值

java中的枚举类型指的是啥啊?

如何将枚举类型字段从反应发送到 GraphQL/AWS appsync

枚举类型