$ sqlite3 healthcare.sqlite3
sqlite3> .headers on
sqlite3> .mode column
sqlite3> .tables
healthcare
sqlite3> .schema healthcare
CREATE TABLE healthcare (
id PRIMARY KEY,
sido INTEGER NOT NULL,
gender INTEGER NOT NULL,
age INTEGER NOT NULL,
height INTEGER NOT NULL,
weight INTEGER NOT NULL,
waist REAL NOT NULL,
va_left REAL NOT NULL,
va_right REAL NOT NULL,
blood_pressure INTEGER
NOT NULL,
smoking INTEGER NOT NULL,
is_drinking BOOLEAN NOT NULL
);
SELECT COUNT(*) FROM healthcare;
COUNT(*)
--------
1000000
SELECT MAX(age), MIN(age) FROM healthcare;
MAX(age) MIN(age)
-------- --------
18 9
SELECT MAX(height), MIN(height), MAX(weight), MIN(weight) FROM healthcare;
MAX(height) MIN(height) MAX(weight) MIN(weight)
----------- ----------- ----------- -----------
195 130 135 30
SELECT COUNT(*) FROM healthcare WHERE height BETWEEN 160 AND 170;
COUNT(*)
--------
516930
(추가 조건: 공백 제거하는 조건 추가) NULL 이랑 공백이랑 다른 개념
SELECT id, waist FROM healthcare WHERE is_drinking=1 and waist !='' ORDER BY waist DESC LIMIT 5;
waist
-----
146.0
142.0
141.4
140.0
140.0
SELECT COUNT(*) FROM healthcare WHERE (va_left>=1.5 AND va_right>=1.5) AND is_drinking=1;
COUNT(*)
--------
36697
SELECT COUNT(*) FROM healthcare WHERE blood_pressure<120;
COUNT(*)
--------
360808
SELECT AVG(waist) FROM healthcare WHERE blood_pressure>=140;
AVG(waist)
----------------
85.8665098512525
SELECT AVG(height), AVG(weight) FROM healthcare WHERE gender=1;
AVG(height) AVG(weight)
---------------- ----------------
167.452735422145 69.7131620222875
SELECT id, height, weight FROM healthcare ORDER BY height DESC LIMIT 1 OFFSET 1;
id height weight
----- ------ ------
46642 195 100
BMI는 체중/(키*키)의 계산 결과이다. 키는 미터 단위로 계산한다.
SELECT COUNT(*) FROM healthcare WHERE (weight/((height*0.01)*(height*0.01)))>=30;
COUNT(*)
--------
53121
BMI는 체중/(키*키)의 계산 결과이다. 키는 미터 단위로 계산한다.
SELECT id, (weight/((height*0.01)*(height*0.01))) FROM healthcare WHERE smoking=3 ORDER BY (weight/((height*0.01)*(height*0.01))) DESC LIMIT 5;
-- BMI 별칭 만들어서 사용하기
SELECT id, (weight/((height*0.01)*(height*0.01))) AS BMI FROM healthcare WHERE smoking=3 ORDER BY BMI DESC LIMIT 5;
id (weight/((height*0.01)*(height*0.01)))
------ --------------------------------------
231431 50.78125
934714 49.9479708636837
722707 48.828125
947281 47.7502295684114
948801 47.7502295684114
SELECT sido, MAX(age) FROM healthcare;
sido MAX(age)
---- --------
27 18
SELECT COUNT(*) FROM healthcare WHERE is_drinking=0 AND blood_pressure>=120;
COUNT(*)
--------
268500
SELECT weight FROM healthcare WHERE height >= 170 ORDER BY weight DESC LIMIT 1 OFFSET 1;
weight
------
135