这是我第一次在这里发帖。几个月来我一直在悄悄地浏览论坛。
我正在尝试显示类别名称、四分位数和每个四分位数的标题数。这是我的 SQL 代码:
SELECT name, standard_quartile, count
FROM
(SELECT c.name, ntile(4) over (order by f.rental_duration) as
standard_quartile, count(f.title) as count
FROM category c
JOIN film_category fc ON c.category_id=fc.category_id
JOIN film f ON fc.film_id=f.film_id
WHERE c.name='Animation' OR c.name='Children' OR c.name='Classics' OR
<BR>c.name='Comedy' OR c.name='Family' OR c.name='Music'
<BR>GROUP BY c.name, f.rental_duration
<BR>) t1
GROUP BY 1, 2, 3
ORDER BY 1,2
但是,因为我无法按四分位数分组(它是一个窗口函数),所以它没有按我的意愿显示结果。我认为将它放在子查询中可能会使其工作,但事实并非如此。我认为另一个问题是一个四分位数可以有多个与之相关的租赁期限数字。
这是它的样子:
动画1 12
动画1 18
动画2 9
动画3 13
动画4 14
儿童1 12
儿童2 9
儿童2 15
儿童3 13
儿童4 11
如果有人能指出我正确的方向或有有用的提示,我将不胜感激。
计数和分组是我要解决的问题。如果您在显示结果的片段中看到,动画有两个 1 四分位数,儿童有两个 2 四分位数。每一种都应该有。但是由于我不能按四分位数分组,因为它是一个窗口函数,所以它是按rental_duration 分组的。
谢谢!:)
PS - 这就是它应该看起来的样子: