我正在运行一个当前从species
表计算animals
的查询。但是,我没有得到下面列出的查询所需的结果。目前COUNT
正在计算specie
的数量,type
由两个单词breed
和dog-pitbull
组成(例如1
)。查询返回所有条目的SELECT specie, COUNT(*) as Total FROM animals GROUP BY specie;
。但是,我如何将狗,猫,鸟等的结果和数量分组,而不考虑品种? SQLFIDDLE
查询
CREATE TABLE animals
(`id` int, `name` varchar(20), `specie` varchar(55))
;
INSERT INTO animals
(`id`, `name`, `specie`)
VALUES
(1, 'dougie', 'dog-poodle'),
(2, 'bonzo', 'dog-pitbull'),
(3, 'cadi', 'cat-persian'),
(4, 'mr.turtle', 'turtle-snapping'),
(5, 'spotty', 'turtle-spotted'),
(6, 'tweety', 'bird-canary')
;
模式
attr('placeholder' array) // jQuery
答案 0 :(得分:1)
USE SUBSTRING_INDEX:
SELECT SUBSTRING_INDEX(specie,'-',1), specie, COUNT(*) AS Total
FROM animals GROUP BY SUBSTRING_INDEX(specie,'-',1);
RESULT:
bird bird-canary 1
cat cat-persian 1
dog dog-poodle 2
turtle turtle-snapping 2
DOKU SUBSTRING_INDEX
答案 1 :(得分:1)
此查询将为您提供动物类型和计数,即2只狗,1只猫,2只海龟,1只鸟。
它会查看specie
的值,并返回找到的第一个-
之前的值以及计数。
SELECT
SUBSTRING_INDEX(specie,'-',1) AS specie
, COUNT(*) AS total
FROM animals
GROUP BY SUBSTRING_INDEX(specie,'-',1);