Math.max(int, int)
을 사용하여 가장 높은 2 개의 정수를 반환 할 수 있지만 이름이 포함 된 SQL 테이블이 있다고 가정 할 때 어떤 형식의 순위/점수 정수), 어떻게 그 점수를 취할 수 있고, 가장 높은 점수를 얻을 수 있습니까?집합 또는 목록에서 가장 높은 int를 반환하는
또는 어떻게 최고에서 최저로 정렬 할 수 있습니까? 그렇다면 나머지는 처리 할 수 있습니까?
Math.max(int, int)
을 사용하여 가장 높은 2 개의 정수를 반환 할 수 있지만 이름이 포함 된 SQL 테이블이 있다고 가정 할 때 어떤 형식의 순위/점수 정수), 어떻게 그 점수를 취할 수 있고, 가장 높은 점수를 얻을 수 있습니까?집합 또는 목록에서 가장 높은 int를 반환하는
또는 어떻게 최고에서 최저로 정렬 할 수 있습니까? 그렇다면 나머지는 처리 할 수 있습니까?
간단한 MySQL 쿼리로이 작업을 수행 할 수 있습니다.
예 :
SELECT * FROM table_name ORDER BY score DESC LIMIT 1;
첫 번째 행은 가장 높은 것이다.
또는 'SELECT max (score) FROM table_name'을 수행 할 수 있습니다. – jahroy
응용 프로그램이 아니라 데이터베이스에서이 작업을 수행하는 것이 좋습니다. –
그런 다음 최소한 'LIMIT 1'을 사용해야합니다. 그러면 SQL 데이터베이스가이를 더 잘 최적화 할 수 있습니다. –
음, 정렬은 최대 값을 찾는 것보다 비용이 많이 듭니다. 최대 값을 찾을 수
아마도 가장 인기있는 코드는 다음과 같습니다
int max = data[0];
for (int i = 1; i < data.length; i++) {
max = Math.max(max, data[i]);
}
이런 식으로 일을 아무 문제가 없습니다.
정렬은 작동하지만 정렬은 O(n log n)
이고 분명히 단지 O(n)
입니다.
데이터 집합의 크기와 데이터베이스의 구조에 따라 다릅니다. 순위 열에 인덱스가 있다면 (아마도 나쁜 생각은 아닙니다), 최대 결과를 검색하는 데'O (log (n))'시간이 걸릴 것입니다. 인덱스가없는 경우에도 고도로 최적화 된 데이터베이스 엔진을 사용하여 정렬하면 전체 테이블을 Java로 전달하고 검색 할 때보 다 더 적은 양의 데이터를 빠르게 처리 할 수 있습니다. –
그의 질문은 너무 애매했기 때문에 그가 데이터베이스 솔루션에만 관심이 있다는 것은 분명하지 않았습니다. 물론, 좋은 데이터베이스 엔진을 가지고 있다면, 'max' 또는'order by, limit 1'을 사용해야합니다. 하지만 그 질문은 사소한 것이었을 것입니다 ... –
또는 및. 가능한 경우 하나의 작업 또는 둘 다 의미 : –