2014-11-12 5 views
0

버전이 포함 된 필드가 있습니다. 값이 약간 다르며 크기가 거의 없어서 5.0.1.1255, 4.2.2, 4.2.x, 4.0, 4.x 같은 값이 있습니다. . 내가 원하는 것이 무엇인지 모르겠지만 각 도트 버전에 대해 계산을하고 싶다. 그래서 5.0, 4.2, 4.0이 얼마나 많은지 알기를 원하지만 버전은 동적 일 것이므로 언젠가는 5.1, 5.2 등 필드를 문자열 형식으로 그룹화하십시오.

그래서 예를 들어, 수동으로 내가 할 수있는 점점

:

SELECT 
    (SELECT COUNT(*) as num FROM ticket_meta m WHERE m.product_version LIKE "4.1%") as ext_4_1, 
    (SELECT COUNT(*) as num FROM ticket_meta m WHERE m.product_version LIKE "4.2%") as ext_4_2 

하지만 물론 내가 지속적으로 해당 쿼리를 업데이트해야 할거야. 훨씬 더 자동화되도록 만드는 방법이 있습니까? 이 T-SQL을위한

SELECT LEFT(product_version, 3) Version, COUNT(*) as Quantity 
FROM ticket_meta 
WHERE product_version 
GROUP BY LEFT(product_version, 3) 

을하지만 난 일을하거나 적어도 MySQL을위한 매우 유사해야합니다 같아요

답변

2

버전 9.9까지,이 스크립트는 작동합니다.

실제로 이러한 값을 행이 아니라 행으로 사용해야하는 경우 피벗 테이블을 사용해야합니다.

추신 : 나는 Ext JS 버전이라고 확신합니다. ;)

0

이것은 MySQL에서 쉽습니다. 그냥 substring_index()를 사용

select substring_index(version, '.', 2) as MajorMinor, count(*) 
from tickeet_meta 
group by MajorMinor; 

이하지 별도의 열에 별도의 행에 결과를 얻을 수 있습니다. 별도의 열에서 결과를 얻으려면 동적 피벗을 수행해야합니다.

관련 문제