【发布时间】:2019-01-26 06:04:48
【问题描述】:
这是我第一次在这里发帖。几个月来我一直在悄悄地浏览论坛。
我正在尝试显示类别名称、四分位数和每四分位数的标题数。这是我的 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
如果有人能指出我正确的方向或提供有用的提示,我将不胜感激。
计数和分组是我要解决的问题。如果您在显示结果的 sn-p 中看到,Animation 有两个 1 四分位数,Children 有两个 2 四分位数。每一种都应该有。但是由于我不能按四分位数分组,因为它是一个窗口函数,所以它是按rental_duration 分组的。
谢谢! :)
PS - 它应该是这样的:
【问题讨论】:
-
您的 PS 似乎只是重复了前面的段落。如果人们不理解您的问题,请找到新的方式来表达您想要表达的意思。我们可以看到看起来是 当前输出 的表格。您能否也添加样本数据和预期输出?如果该 PS 部分没有添加任何新内容,请将其删除 - 但请务必尝试以不同的方式解释您的问题。
标签: sql group-by window-functions quartile