필드 이름을 지정하지 않고 보기에서 모든 필드의 모든 평균을 선택합니다.
그래서 제 데이터베이스에는 꽤 넓은 시야가 있습니다.여러 테이블에서 생성된 다음과 같은 더미 뷰가 있습니다. SELECT * FROM view_name;는 다음 결과를 산출합니다.
field1 field2 field3 field4 field5
---------- ---------- ---------- ---------- ----------
1 4 7 10 15
2 5 8 11 14
3 6 9 12 13
평균을 얻으려면 평균을 구하는 각 필드에 이름을 붙여야 합니다.
SELECT avg(field1), avg(field2), avg(field3), avg(field4), avg(field5) FROM view_name;
결과는 다음과 같습니다.
avg(field1) avg(field2) avg(field3) avg(field4) avg(field5)
----------- ----------- ----------- ----------- -----------
2.0 5.0 8.0 11.0 14.0
실제 사용 사례 중에는 보고서와 같은 목적으로 20~25필드의 뷰가 있는 것도 있습니다.평균을 얻고 싶은 열을 일일이 지정하지 않아도 되고 이에 대한 해결 방법이 있는지 궁금하면 쿼리 작성이 훨씬 쉬워집니다.제가 사용하고 있는 데이터베이스는 sqlite와 mariadb이기 때문에 둘 중 어느 쪽이라도 사용할 수 있는 솔루션이 좋습니다.
즉, 다음과 같이 필드 이름을 지정하지 않고 모든 필드의 평균을 모두 가져오도록 지정하는 방법을 찾고 있습니다.SELECT *위의 쿼리와 동일하게 동작하여 반환한다.구문을 위반하는 아날로그는
SELECT * FROM view_name그리고.SELECT AVG(*) FROM view_name
작성한 더미 뷰를 사용하는 경우 더미 테이블을 사용하여 시뮬레이트할 수 있습니다(상기한 바와 같이 실제 뷰는 이 테이블보다 훨씬 넓습니다).
CREATE table dummy (
field1 int,
field2 int,
field3 int,
field4 int,
field5 int
);
INSERT INTO dummy VALUES (1,4,7,10,15);
INSERT INTO dummy VALUES (2,5,8,11,14);
INSERT INTO dummy VALUES (3,6,9,12,13);
SELECT CONCAT('SELECT ', GROUP_CONCAT(CONCAT('AVG(',column_name,')')),' FROM view_name')
FROM information_schema.columns WHERE table_name = 'view_name' INTO @query;
PREPARE stmt FROM @query;
EXECUTE stmt;
+-------------+-------------+-------------+-------------+-------------+
| AVG(field1) | AVG(field2) | AVG(field3) | AVG(field4) | AVG(field5) |
+-------------+-------------+-------------+-------------+-------------+
| 2.0000 | 5.0000 | 8.0000 | 11.0000 | 14.0000 |
+-------------+-------------+-------------+-------------+-------------+
또, 보존 루틴으로 랩 해, 뷰명을 파라메타로 할 수 있다.그 생각은 이다INFORMATION_SCHEMA.COLUMNS에는 테이블 또는 뷰의 모든 컬럼 이름이 포함되어 있으며 다양한 기준을 사용하여 검색 및 필터링할 수 있습니다.
언급URL : https://stackoverflow.com/questions/41142864/select-all-averages-of-all-fields-from-a-view-without-specifying-field-names
'programing' 카테고리의 다른 글
| HTML 백링크를 만드는 방법 (0) | 2022.12.03 |
|---|---|
| 요청된 서비스 [org.hibernate.eng.env.spi]를 생성할 수 없습니다.Java 13 이행 후 Jdbc Environment] (0) | 2022.12.03 |
| PHP 오류 처리: die() Vs 트리거_error() Vs throw 예외 (0) | 2022.11.24 |
| 가져오기 API vs XMLHttpRequest (0) | 2022.11.24 |
| "인스턴스에 속성 또는 메서드가 정의되어 있지 않지만 렌더링 중에 참조됩니다." (0) | 2022.11.24 |