基于记录计数的MySQL Case语句

bwitn5fc  于 2022-11-21  发布在  Mysql
关注(0)|答案(1)|浏览(119)

我正在尝试创建一个MySQL语句,该语句使用CASE语句来获取记录的COUNT,然后显示一列信息。我正在使用Sakila数据库。这是我目前所拥有的

SELECT *,
CASE(
SELECT count(*) FROM  sakila.film_actor fa
WHERE fa.actor_id = a.actor_id)
WHEN 20 THEN 'Newcomer'
WHEN 30 THEN 'Prolific Actor'
ELSE 'Hollywood Star'
END actor_level

FROM sakila.film_actor fa
JOIN actor a ON fa.actor_id = a.actor_id

这是可行的,但我需要它的规模,所以0-20是新人21-30是多产演员30+是好莱坞星星

wztqucjr

wztqucjr1#

既然你使用的是mysql,那么我们可以使用IF()函数来做

SELECT 
   IF(a.cnt <= 20,'Newcomer',a.cnt > 20 and a.cnt <= 30,'Prolific Actor','Hollywood Star')
     AS actor_level
  FROM
  (
    SELECT count(*) as cnt 
     FROM  sakila.film_actor fa
    WHERE fa.actor_id = a.actor_id
  ) a

相关问题