sql/sqlite 질문이 있습니다. 나는 sqlite 데이터베이스 테이블에서 일부 값을 선택하는 쿼리를 작성해야한다. 나는 항상 최대 반환 레코드가 20이되기를 원합니다. 선택된 전체 레코드가 20보다 큰 경우 전체 레코드에 균등하게 (무작위로) 퍼져있는 20 개의 레코드를 선택해야합니다. 또한 날짜별로 정렬 할 때 항상 테이블의 첫 번째 값과 마지막 값을 선택하는 것이 중요합니다. 이 레코드는 결과의 처음과 마지막에 삽입해야합니다.Sqlite : 전체 레코드에 걸친 레코드 선택
나는 이것을 코드에서 수행하는 방법을 알고 있지만, 같은 것을 할 수있는 sqlite 쿼리를 갖는 것이 가장 좋습니다.
현재 사용 쿼리 임은 정말 간단하고 다음과 같습니다
"SELECT value,date,valueid FROM tblvalue WHERE tblvalue.deleted=0 ORDER BY DATE(date)"
내가 예를 들어 이러한 기록하는 그 커다란에서 내가 할 최대 결과는 5
입니다 쉽게 예를 만드는 경우id value date
1 10 2010-04-10
2 8 2010-04-11
3 8 2010-04-13
4 9 2010-04-15
5 10 2010-04-16
6 9 2010-04-17
7 8 2010-04-18
8 11 2010-04-19
9 9 2010-04-20
10 10 2010-04-24
I는 다음과 같이 균일하게 확산되고 싶은 그 결과, 전자가
이id value date
1 10 2010-04-10
3 8 2010-04-13
5 10 2010-04-16
7 8 2010-04-18
10 10 2010-04-24
희망 고맙습니다.
이 같은SELECT value,date,valueid FROM tblvalue WHERE tblvalue.deleted=0
ORDER BY DATE(date), Random()
LIMIT 20
당신은 내가 전체 기록에 걸쳐 20 개 개의 레코드를 선택해야합니다 "가 무슨 뜻 이죠 "? – SQLighter
그는 무작위로 배열 된 것을 의미한다고 생각합니다. 즉, 임의의 요소로 정렬했습니다. –
죄송합니다. 분명치 않다. 무작위로 싶지는 않습니다. 위의 업데이트 된 질문을 참조하십시오. 감사! – Mrbiggerm