2012-02-18 3 views
0

는 이러한 예시적인 관계 및 데이터임의의 하위 분류 기록

|_id_____|_type____|_name________|_date_______________| 
| 1  | 1  | ajshdf  | 2012-02-18 12:35:00 
| 2  | 1  | jkhae  | 2012-02-18 12:35:00 
| 3  | 1  | dsfad  | 2012-02-18 12:35:00 
| 4  | 2  | 3f3ad  | 2012-02-18 12:35:00 
| 5  | 2  | gad64  | 2012-02-18 12:35:00 
| 6  | 2  | as3da  | 2012-02-18 12:35:00 
| 7  | 3  | faf3a  | 2012-02-18 12:35:00 
| 8  | 3  | ga3d3  | 2012-02-18 12:35:00 
| 9  | 4  | jzd64  | 2012-02-18 12:35:00 

유형에 의해 주문 가능한 레코드를 균등하게 분배하는 resulset을 달성하는 가장 좋은 방법은 무엇을 감안할 때?

|_id_____|_type____|_name________|_date_______________| 
| 1  | 1  | ajshdf  | 2012-02-18 12:35:00 
| 4  | 2  | 3f3ad  | 2012-02-18 12:35:00 
| 7  | 3  | faf3a  | 2012-02-18 12:35:00 
| 9  | 4  | jzd64  | 2012-02-18 12:35:00 
| 2  | 1  | jkhae  | 2012-02-18 12:35:00 
| 5  | 2  | gad64  | 2012-02-18 12:35:00 
| 8  | 3  | ga3d3  | 2012-02-18 12:35:00 
| 3  | 1  | dsfad  | 2012-02-18 12:35:00 
| 6  | 2  | as3da  | 2012-02-18 12:35:00 
| 7  | 3  | faf3a  | 2012-02-18 12:35:00 

:

내가 원하는 결과가 같은 것을 보이도록 종류가 주위 변경되어, 그 결과 레코드가 최신 항목이 맨 위에 항상하는 방식으로 정렬되어 있습니다,하지만 당신이 볼 때, type는 결과에 변경 및 순환 - 1, 2, 3, 4, 1, 2, 3, 1, 2, 3

+0

나는 afr입니다. 원조 나는 원하는 순서를 이해하지 못한다. 당신은 * 배포 * 유형의 다른 제약에 관계없이 "최신 항목은 항상 맨 위에 있습니다 *"* 보이지 않는 것 같습니다. 원하는 순서를 명확하게 정의한 후에도 해결책이 명확 해집니다. – mkoistinen

+0

좋습니다, 나는 날짜 필드가 너무 구체적이라는 것을 편집했다. 이제 –

+0

은'SELECT * FROM myTable ORDER BY date, type'이 될 수없고'SELECT * FROM myTable ORDER BY date. , 이름' –

답변

0

예쁜 비효율적하지만 나는 그것이 작동 생각 :

SELECT a.* 
FROM 
     TableX AS a 
    JOIN 
     TableX AS b 
    ON b.type = a.type 
    AND b.id <= a.id 
GROUP BY 
     a.id 
ORDER BY 
     COUNT(*) 
    , a.id 
관련 문제