2017-11-15 19 views
-1

하나의 데이터가있는 테이블에서 값의 발생 횟수를 기반으로 간단한 백분율 값을 제공하는 SQL 쿼리를 찾고 있습니다. 기둥. 예 :백분율 계산을위한 SQL 쿼리 - 단일 열, 모든 데이터, like/wildcard 사용

COLUMN_HEADER 
XYZ://abc123xyz456-0 
XYZ://abc123xyz456-1 
XYZ://abc123xyz456-2 
XYZ://abc123xyz456-3 
ABC://abc123xyz456-4 
XYZ://abc123xyz456-5 
XYZ://abc123xyz456-6 
ABC://abc123xyz456-7 
XYZ://abc123xyz456-8 
XYZ://abc123xyz456-9 

내가 XYZ로 시작하지 않는 모든 데이터 를 찾는 쿼리를 찾고 있어요 : 테이블 헤더와 10 개의 데이터 행이 데이터의 단일 열을 가지고 // * 그리고 그것을 행 수의 %로 지정하십시오. 위의 예에서

, ABC 시작하는 두 개의 행이 //와 XYZ 시작 여덟 // 따라서 결과가 같아야 80.00 %를

(그래서 10 명 중 8 행하지 XYZ로 시작하십시오 : //)

당신이 지금까지 말할 수 있듯이 저는 SQL에 멍청한 사람입니다.

MS SQL 2014

미리 감사드립니다.

+0

안녕하세요. 이 사이트는 코드 작성 서비스가 아니며 완벽한 솔루션을 제공하기위한 것이 아닙니다. 사용자는 특정 프로그래밍 문제를 해결하는 데 도움이되도록 노력과 코드를 제시해야합니다. 벌써 시도해 봤니? 읽으십시오 : https://stackoverflow.com/help/asking –

답변

0

조건부 집계하여이 작업을 수행 할 수 있습니다

select avg(case when COLUMN_HEADER like 'XYZ://%' then 1.0 else 0 end) as xyz_ratio 

당신의 논리와 예를 거꾸로입니다. 행의 80 %가 이되는 값을 가지며은 "XYZ : //"로 시작합니다. 적절한 경우 like 또는 not like을 사용하십시오.