Das Problem ist die Datenbank mehrere Werte in einem Feld zu speichern. Das aktuelle Schema verletzt die 3. Normalform.
Eine Lösung besteht darin, eine Abfrage auszuführen, um Ihre Daten zu normalisieren und dann normale Aggregatabfragen für diese Abfrage auszuführen. substring_index kann für diesen Zweck verwendet werden.
SQL Fiddle
CREATE TABLE yourTable (`Delay_Reason` varchar(512));
INSERT INTO yourTable (`Delay_Reason`)
VALUES
('ERIC_Drive Test Taking too Long;#ERIC_Lack Of GSC Resources/Queuing DT Drives;#ERIC_Cluster Having Too Many RF Issues Needing Tuning;#'),
('ERIC_Drive Test Taking too Long;#ERIC_Lack Of GSC Resources/Queuing DT Drives;# '),
('ERIC_Drive Test Taking too Long;#') ;
select delay_reason, count(*) count from (
/*
normalise the data
add as many substring_index union all elements as required
*/
select SUBSTRING_INDEX(delay_reason, ';#', 1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 2), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 3), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 4), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 5), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 6), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 7), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 8), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 9), ';#', -1) AS delay_reason from yourTable
union all
select SUBSTRING_INDEX(SUBSTRING_INDEX(delay_reason, ';#', 10), ';#', -1) AS delay_reason from yourTable
) delay_reasons
/* remove empty values */
where delay_reason <> ''
group by delay_reason
order by count desc;
- Beispiel führt
delay_reason Zählung
ERIC_Drive-Test zu lange dauert 3
ERIC_Lack von GSC Resources/Queuing DT-Laufwerke 2
ERIC_Cluster Zu viel M haben Alle HF-Probleme, die Tuning erfordern 1
Wenn Sie das Recht haben, das Schema zu ändern, können Sie auch die Daten normalisieren.
Was erscheint 'a' nur zweimal in der Zählung? Hast du schon etwas probiert? –