2016-09-28 5 views
0

같이 계산하십시오. 하나의 테이블에서 두 개의 Select 문을 두 개의 개별 열로 결합한 다음이를 %로 나누어도됩니까? 당신은에 두 쿼리에서 논리를 결합하는 조건 집합을 사용할 수 있습니다두 개의 Select 문을 %

Quote with VIN | Number of Quote | Result 
----------------------------------------- 
116260   | 195850   | 59.36% 
+0

''sql-server'에 chg'd 태그, 직감 – Drew

+0

설명해 주신 분들께 고마워요 ... – AlvinWi

답변

2

: 예상 결과는 다음과 같이 될 것이다

select count(*) as 'Number of Quote' 
from BSIT_ERA_RAW_DATA.dbo.QUOTE 

: 아래의 두 번째 Select 문으로

Select count(*) as 'Quote with VIN' 
From BSIT_ERA_RAW_DATA.dbo.QUOTE 
where LEN(inv_vehicle_id) = 17 

단일 검색어 :

SELECT SUM(CASE WHEN LEN(inv_vehicle_id) = 17 THEN 1 END) AS `Quote with VIN`, 
     COUNT(*) AS `Number of Quote`, 
     CONCAT(ROUND(100 * SUM(CASE WHEN LEN(inv_vehicle_id) = 17 THEN 1 END)/COUNT(*), 2), 
       '%') AS Result 
FROM BSIT_ERA_RAW_DATA.dbo.QUOTE 
+0

훌륭하게 작동합니다 .. 덕분에 많이 – AlvinWi

0

조건부 집약을 사용할 수 있습니다. MySQL은, 당신은 짧은 컷으로이 작업을 수행 할 수 있습니다

select sum(len(inv_vehicle_id) = 17)) as `Quote with VIN`, 
     count(*) as `Number of Quote` 
From BSIT_ERA_RAW_DATA.dbo.QUOTE ; 

대부분의 다른 데이터베이스에서 당신은 case을 사용해야합니다.

또한 열 이름에 작은 따옴표를 사용하지 마십시오. 그것은 기다리고있는 버그입니다. 가장 좋은 선택은 이스케이프 할 필요가없는 이름을 선택하는 것입니다. 하지만 그렇게한다면, MySQL 이스케이프 문자 (backquotes)를 사용하십시오.

관련 문제