2011-08-19 3 views
2

예를 들어 요소를 가정합니다. YouTube 동영상은 다양한 카테고리로 분류 할 수 있습니다. 음악, 스포츠, 엔터테인먼트.데이터베이스에서 가장 인기있는 항목 범주를 찾는 최적의 SQL 문 또는 알고리즘

데이터베이스의 모든 요소를 ​​살펴보고 가장 자주 발생하는 범주의 정렬 된 목록을 출력하고 싶습니다.

편집 : 구체적으로 세 가지 관련 데이터베이스 테이블이 있습니다. 1) 항목 (이름, ID) 2) 카테고리 (이름, ID) 3) item_category (ITEM_ID, CATEGORY_ID)

1)이보다 효율적 있나요은

Pseudocode 
foreach (category) 
    select all database elements which match that category 
    associate category with the number of results from the select query 
    return the associative array 

sort the associative array on the values of each category (key) 

2) 어떤 PHP를? : 함수를 사용하면 연관 배열의 값을 쉽게 정렬 할 수 있습니까? 또는 SQL을 통해이 작업을보다 효율적으로 수행 할 수 있습니까?

+0

데이터베이스 또는 PHP에서이 작업을 수행 하시겠습니까? 데이터베이스는 일반적으로 데이터를 필터링하고 정렬하는 데 더 적합합니다 ... –

+0

어느 것이 더 효율적으로 처리 할 수 ​​있습니까? – algorithmicCoder

답변

2
SELECT COUNT(*) AS popularity 
FROM categories, views 
WHERE views.category_id = categories.id 
GROUP BY views.category_id 
ORDER BY popularity DESC 

이렇게하면 모든 카테고리가 선택되고 가장 인기가 적은 것으로 정렬됩니다.

관련 문제