"기타" 범주의 지정되지 않은 값을 계산하기 위한 쿼리
우리가 해결하고자 하는 문제를 간단한(그리고 의도적으로 정규화되지 않은) 표를 사용하여 설명합니다.
샘플 스키마 및 데이터
create table expense_profile
(
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(10),
category VARCHAR(16),
percentage DECIMAL(15,2),
PRIMARY KEY(id)
);
INSERT INTO expense_profile(name, category, percentage)
VALUES('Alice', 'Housing', 15), ('Alice', 'Transportation', 5),
('Alice', 'Food', 25), ('Alice', 'Utilities', 5),
('Alice', 'Healthcare', 5), ('Alice', 'Personal', 3),
('Bob', 'Transportation', 7), ('Bob', 'Food', 18),
('Bob', 'Healthcare', 8), ('Bob', 'Personal', 20);
이 표에서 우리는 앨리스 비용의 58%와 밥 비용의 53%를 설명했습니다.여기에는 앨리스 비용의 42%와 밥 비용의 47%가 "기타" 항목에 포함되어 있습니다.
Q)지정된 사용자에 대해 "기타" 범주를 포함한 모든 범주를 나열할 수 있는 쿼리가 있습니까?
예를 들어, Bob의 출력은 다음과 같습니다.
+------+----------------+------------+
| name | category | percentage |
+------+----------------+------------+
| Bob | Transportation | 7.00 |
| Bob | Food | 18.00 |
| Bob | Healthcare | 8.00 |
| Bob | Personal | 20.00 |
| Bob | Other | 47.00 |
+------+----------------+------------+
이건 어때?
(SELECT name, category, percentage FROM expense_profile GROUP BY name , category )
union
(SELECT name,'Other',100-sum(percentage) AS percentage FROM expense_profile GROUP BY name HAVING percentage>0)
ORDER BY name, category='Other',category;
언급URL : https://stackoverflow.com/questions/65963824/query-to-compute-unspecified-values-in-other-category
'programing' 카테고리의 다른 글
Java + Mysql UTF8 Problem (0) | 2023.09.11 |
---|---|
Unable to start MariaDB - Ubuntu 18.04 (0) | 2023.09.11 |
STDOUT을 PHP의 파일로 리디렉션하는 방법? (0) | 2023.09.11 |
.apk 패키지 내의 AndroidManifest.xml 파일을 구문 분석하는 방법 (0) | 2023.09.11 |
Node.js 스크립트에 적합한 hashbang (0) | 2023.09.06 |