반응형
SQL에서 ID별로 그룹화된 모든 필드의 최대 평균을 찾는 방법은 무엇입니까?
그래서 저는 50개가 넘는 필드가 있는 거대한 테이블을 가지고 있고 ID로 각 필드의 최대 평균을 찾아야 합니다.내 테이블은 다음과 같습니다.
+----+--------+--------+-----+---------+
| ID | field1 | field2 | ... | field50 |
+----+--------+--------+-----+---------+
| 1 | 234 | 12 | ... | 634 |
+----+--------+--------+-----+---------+
| 2 | 1 | 69 | ... | 34 |
+----+--------+--------+-----+---------+
| 3 | 512 | 1000 | ... | 420 |
+----+--------+--------+-----+---------+
| 4 | 11 | 69 | ... | 34 |
+----+--------+--------+-----+---------+
| 3 | 522 | 1337 | ... | 78 |
+----+--------+--------+-----+---------+
| 2 | 18 | 698 | ... | 348 |
+----+--------+--------+-----+---------+
| 3 | 32 | 1910 | ... | 40 |
+----+--------+--------+-----+---------+
저는 이것을 할 수 있는 간단한 방법이 있는지 궁금합니다.현재 각 ID의 평균이 포함된 하위 쿼리에서 최대치를 가져오려고 합니다.위의 예제 표에서 하위 쿼리는 다음과 같은 것을 반환해야 합니다.
+----+-------+-------+-----+-------+
| ID | avg1 | avg2 | ... | avg50 |
+----+-------+-------+-----+-------+
| 1 | 234 | 12 | ... | 634 |
+----+-------+-------+-----+-------+
| 2 | 9.5 | ~990 | ... | 191 |
+----+-------+-------+-----+-------+
| 3 | ~355 | ~1416 | ... | 538 |
+----+-------+-------+-----+-------+
| 4 | 11 | 69 | ... | 34 |
+----+-------+-------+-----+-------+
그리고 최종 결과는 다음과 같은 것을 반환해야 합니다.
+-----------+-----------+-----+------------+
| MAX(avg1) | MAX(avg2) | ... | MAX(avg50) |
+-----------+-----------+-----+------------+
| ~355 | ~1416 | ... | 634 |
+-----------+-----------+-----+------------+
현재 제 SQL은 다음과 같습니다.
SELECT MAX(avg1), MAX(avg2), ... , MAX(avg50)
FROM (
SELECT ID, AVG(field1) AS avg1, AVG(field2) AS avg2, ... ,
AVG(field50) AS avg50
FROM table
GROUP BY ID
AS subquery
)
그런데 서브쿼리 끝에 LIMIT 문이 추가되고 일이 꼬이는 것 같아 서브쿼리 내에서 이상한 구문 오류가 발생하고 있습니다.저는 SQL을 비교적 처음 사용하는 편이며 현재의 방법이 가장 적합한 방법인지 잘 모르겠습니다.
코드를 수정하거나 50개 이상의 필드 이름을 수십억 번 입력할 필요가 없는 더 나은 솔루션을 제공할 수 있는 사람이 있다면 매우 감사하겠습니다.
제가 하려는 일에 대해 추가적인 설명이 필요하시면 언제든지 의견을 보내주세요.
감사해요.
구문이 잘못되었습니다. Put.AS subquery
아래와 같이 내부 질의에서.
SELECT MAX(avg1), MAX(avg2), ... , MAX(avg50)
FROM (
SELECT ID, AVG(field1) AS avg1, AVG(field2) AS avg2, ... ,
AVG(field50) AS avg50
FROM table
GROUP BY ID
) AS subquery
언급URL : https://stackoverflow.com/questions/49705458/how-to-find-the-maximum-average-of-all-fields-grouped-by-id-in-sql
반응형
'programing' 카테고리의 다른 글
파워셸 변수를 시작 작업으로 전달 (0) | 2023.08.10 |
---|---|
응용 프로그램 컨텍스트에 여러 PropertyPlaceHolderConfigurer를 둘 수 있습니까? (0) | 2023.08.10 |
옵션 단추의 독립적인 그룹 만들기 (0) | 2023.08.10 |
빠른 상수:구조자 열거형 (0) | 2023.08.10 |
도커: unix:///var/run/docker.sock의 도커 데몬 소켓에 연결하는 동안 사용 권한이 거부되었습니다. (0) | 2023.08.05 |