使用“ - ”表格字段上的计数和分组依据

时间:2015-09-05 21:41:30

标签: mysql

我正在运行一个当前从species表计算animals的查询。但是,我没有得到下面列出的查询所需的结果。目前COUNT正在计算specie的数量,type由两个单词breeddog-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

2 个答案:

答案 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);