
SELECT animal_type as type, count(*) as count
from animal_ins
group by type
order by type;
보통 Select 쿼리는 group by 이후에 실행되므로, select 절에서 만든 alias를 모를 수 있습니다(mysql 말고 다른 DBMS에서는 아예 문법적으로 불가능하다 합니다).
order by의 경우, select 이후에 실행되지만 가독성을 위해 정확한 컬럼명을 명시해주는게 좋습니다.
또한 As 문에서 정의한 변수명을 특정 키워드의 기준으로 삼는다면, 변수명 이기 때문에 유지보수성에 문제가 생길 수도 있습니다.(아무 생각없이 변수명을 바꾸면!? Holymoly😱)
SET @hour := -1;
select
(@hour := @hour + 1) as Hour,
(select count(*) from animal_outs where hour(datetime) = @hour) as Count
from animal_outs //
where @hour < 23;
SELECT
animal_type,
ifnull(name, "No name") as name,
sex_upon_intake
from animal_ins;
select
animal_type,
case
when name is null then "No name"
else name
end as Name,
sex_upon_intake
from animal_ins