[プログラマー]SQLハイスコアキット:GROUP BY
GROUP BY [リンク]
猫と犬は何匹いますか.
どちらも条件を与える命令語ですが、
養子縁組取得時間(1)
YEAR MONTH DAY MINUTE SECONDでも構いません
養子縁組取得時間(2)ユーザ定義変数 ストレージの値は、データ型を決定する.
(Integer、Decimal、Float、Binary、Float、String対応) を初期化しない場合、 である. SQLは、
(SETセクションでは、両方とも代入演算子として使用できます)
猫と犬は何匹いますか.
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY
CASE ANIMAL_TYPE
WHEN 'Cat' THEN 1
WHEN 'Dog' THEN 2
END;
🔎CASE 칼럼명
WHEN 조건 THEN 결과
...
ELSE 결과
END
同名の動物を探す<SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT > 1
ORDER BY NAME;
🔎 WHERE vs HAVINGどちらも条件を与える命令語ですが、
WHERE
の場合、すべてのテーブルに優先条件を提供し、GROUP BYをグループ化することができる.HAVING
は、GROUP BY後のパケットの新しいテーブルに条件を提供する.養子縁組取得時間(1)
SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 and HOUR <= 19
ORDER BY HOUR(DATETIME);
🔎 HOUR()
:日付データからのみ時間を抽出YEAR MONTH DAY MINUTE SECONDでも構いません
養子縁組取得時間(2)
SET @hour := -1;
SELECT (@hour := @hour +1) as HOUR , -- 1씩 증가시켜서 해당 시간 카운트
(SELECT COUNT(*) FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)=@hour) AS COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23;
-- 마지막인 @hour=22가 SELECT절에서 +1되어 23까지 카운트 합니다.
🔎 SET@変数名:=初期値;(Integer、Decimal、Float、Binary、Float、String対応)
NULL
の値が生成され、データ型はString =
を比較演算子、:=
を代入演算子として使用します.(SETセクションでは、両方とも代入演算子として使用できます)
Reference
この問題について([プログラマー]SQLハイスコアキット:GROUP BY), 我々は、より多くの情報をここで見つけました https://velog.io/@sunho6824/프로그래머스-SQL-고득점-Kit-GROUP-BYテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol