select
및 groupby
을 사용하고 count
이라는 집계 함수를 사용하십시오. 당신은 이미 알고있을 것입니다. %
은 "히트 수"를 "모든 것"수로 나눈 값입니다 (가독성을 위해 100 번). 같은
따라서, 그 두 쿼리의 스케치가 보일 것이다
이
Select count(*) from FooTable;
다음 @totalCount 같은 몇 가지 변수에 결과를 작성하고
-- watch out for the division; the value divided must be floating-point or you'll get all zeroes
Select categoryName, 100.0*count(*)/@totalCount
from FooTable
group by categoryName
당신의 SQL 언어를 허용하는 경우 및 경우 원하는대로 다음과 같이 하나의 쿼리로 함께 묶을 수 있습니다.
select categoryName, 100.0*hits/allcount
from
(
Select
categoryName,
count(*) as hits
from FooTable
group by categoryName
) as subq
cross join
(
Select
count(*) as allcount
from FooTable
) as allstats
MsSqlServer의 t-SQL에서 OK입니다. 그러나 집계는 두 번 실행됩니다 (한 번은 방문수, 한 번은 alllcount). 'allcount'는 실제로 필요하지 않습니다. 조회수가 발생하면 조회수에서 총 횟수와 비율을 계산할 수 있습니다.
편집 : 같은 우리는 우리가 답으로 이동할 수 있습니다 전에 측면에서 어떤 노력을 볼 필요가
Select
categoryName,
count(*) * 100.0/(Select count(*) as allcount from FooTable)
from FooTable
group by categoryName
도 짧아. –
어떤 DBMS를 사용하고 있습니까? 포스트그레스? 신탁? –
ErikE 지금까지 내가 염두에두고있는 것은 쿼리를 작성하는 것입니다. 기사에서 count (articles)를 선택하지만 테이블 (기사 및 카테고리)을 "연결"하기 위해 WHERE를 설정하는 방법을 모르며 나는 어떤 범주가 필요하다. – kanth