【发布时间】:2010-10-22 11:16:18
【问题描述】:
我试图找出一个值在一列中出现的平均次数,根据另一列对其进行分组,然后对其进行计算。
我有3张桌子有点像这样
DVD
ID | NAME
1 | 1
2 | 1
3 | 2
4 | 3
COPY
ID | DVDID
1 | 1
2 | 1
3 | 2
4 | 3
5 | 1
LOAN
ID | DVDID | COPYID
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
4 | 3 | 4
5 | 1 | 5
6 | 1 | 5
7 | 1 | 5
8 | 1 | 2
等
基本上,我试图找到出现在贷款表中的所有副本 ID,其次数少于该 DVD 所有副本的平均次数。
所以在上面的例子中,dvd 1 的副本 5 出现 3 次,复制 2 两次,然后复制 1 一次,所以该 DVD 的平均值是 2。我想列出该 DVD 的所有副本(以及彼此)在 Loan 表中出现的数字小于该数字。
我希望这更有意义......
谢谢
【问题讨论】:
-
那么在你的例子中,应该返回什么结果数据集呢?是否应该为 DVDID=1 输出 2,为其他两个输出 1?
-
...因为说“一个值在列中出现的平均次数”没有任何意义。出现的次数就是出现的次数;你不能平均一个值。
-
对不起,我睡着了!我的意思是我想找出每张 DVD 的副本出现在外借表中的平均次数
-
@Dan:这已经不是很清楚了。请编辑您的问题并显示您想要的结果示例。
标签: sql oracle aggregate-functions