这个问题是我最近提出的一个问题的后盾:(Sequencing in Teradata)。
如果我使用以下查询从1: 50选择一个数字范围:
WITH Nums(N) AS (
SELECT N
FROM (SELECT ROW_NUMBER() OVER(ORDER BY i) As N
FROM RDMAVWSANDBOX.xref_integers T
) T
WHERE N <51
)
SELECT * FROM Nums
ORDER BY N这将产生预期的结果:查询返回一个字段宽50行长的查询结果,编号为1: 50。(Xref_integers是一个有10K记录的虚拟表)。
但现在我想把它和我的实际工作结合起来。
如果我有一张叫“人”的桌子。人的每一个记录都是购买卷心菜的一个例子。
所以我想知道有多少人买了1:50卷心菜。
所以,要与上面的内容结合起来--我该怎么做呢?
我被困住了,因为我想做两个陈述:
从NUMS中选择*,从人中选择COUNT(People.C)。
如果人中的字段名是电子邮件,只有一个字段,而电子邮件的数量是一个人买的卷心菜的数量,我如何说选择拥有N个卷心菜的人的数量。那么范围内的每一个数字呢?
我知道在这个例子中我只需要说SELECT EMAIL, COUNT(EMAIL) FROM PEOPLE GROUP By EMAIL,但是如果我不得不比较一个离散的数字范围,我会怎么做呢?
发布于 2014-06-05 21:58:34
尝尝这个
SELECT * FROM Nums
left join (SELECT EMAIL, COUNT(EMAIL) as nemail FROM PEOPLE GROUP By EMAIL) as x on
nemail=n ORDER BY Nhttps://stackoverflow.com/questions/24070792
复制相似问题