プログラマーSQL-(SELECT)、(SUM、MAX、MIN)、(GROUP BY)
-すべてのレコードを表示:簡単すぎる:簡単すぎる 病気の動物を探す:簡単すぎる 小動物を探しています:簡単すぎます(どうして簡単な問題しかありませんか?) 動物のIDと名前:簡単すぎる(おかしい...) をソート:簡単すぎる 上位n名記録:容易すぎる 最大値を求めます:あまりに容易な 最高価格の を求めますの動物の数を得る:簡単すぎる...問題はどうしてこんなに質が低いのですか. 重複データ消去:私が解いたのは出題のためではないようです... 猫と犬はいくらあります:とても簡単です 同名動物の数を探しています:考えてみました.サブクエリを使用する必要がありますか?groupbyでagg(count)クエリを行った結果ではhaveセクションを使用します. 養子縁組の視点を求める1:HOUR(DATETIME)asHOURにはAS後の 養子縁組の視点を探す2:Very Hard(答えられない)また、実際のSQLでの動作もこの動作を繰り返します.
SELECT * from ANIMAL_INS as ani_i
ORDER BY ani_i.ANIMAL_ID
逆の順序でSELECT NAME, DATETIME from ANIMAL_INS as ani_i
ORDER BY ani_i.ANIMAL_ID desc
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
AND INTAKE_CONDITION ='Sick'
ORDER BY ANIMAL_ID asc;
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
AND INTAKE_CONDITION !='Aged'
ORDER BY ANIMAL_ID asc;
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY ANIMAL_ID asc;
複数の基準でSELECT ANIMAL_ID, NAME, DATETIME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY NAME asc, DATETIME desc;
SELECT NAME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY DATETIME asc
LIMIT 1;
SELECT DATETIME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY DATETIME desc
LIMIT 1;
(出題意図に合った回答)SELECT max(datetime) as '시간' from animal_ins;
SELECT min(datetime) from animal_ins;
SELECT count(ANIMAL_ID) from ANIMAL_INS as ani_i
SELECT count(*) from (
SELECT NAME, count(ANIMAL_ID) from ANIMAL_INS as ani_i
WHERE 1=1
AND ani_i.NAME != 'NULL'
GROUP BY ani_i.NAME
) as c;
(出題意図に合った答え:簡単にDISTINCTを…ㅠ)SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS;
SELECT ANIMAL_TYPE, count(ANIMAL_ID) from ANIMAL_INS as ani_i
group by ani_i.ANIMAL_TYPE
order by ani_i.ANIMAL_TYPE asc;
select NAME, count(*) from ANIMAL_INS
where 1=1
AND NAME != 'NULL'
group by NAME
HAVING count(*) > 1
order by NAME asc
as HOUR
部分が設けられていなかったので、Have節でHOURを条件にした時に苦労した.select HOUR(DATETIME) as HOUR, count(*) from ANIMAL_OUTS
group by HOUR
HAVING 1=1
AND HOUR > 8
AND HOUR < 20
order by HOUR asc;
SELECT HOUR, COUNT(OUTS.DATETIME) AS COUNT
FROM
(
WITH RECURSIVE CTE AS
(
SELECT 0 AS HOUR
UNION ALL
SELECT 1 + HOUR AS HOUR
FROM CTE
WHERE HOUR < 23
)SELECT * FROM CTE
) TIME
LEFT JOIN ANIMAL_OUTS OUTS ON HOUR(OUTS.DATETIME) = TIME.HOUR
GROUP BY HOUR
ORDER BY HOUR ASC
Reference
この問題について(プログラマーSQL-(SELECT)、(SUM、MAX、MIN)、(GROUP BY)), 我々は、より多くの情報をここで見つけました https://velog.io/@soonwoo2003/프로그래머스SQL-SELECT-SUMMAXMIN-GROUPBYテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol