【发布时间】:2020-09-01 12:35:17
【问题描述】:
我在做以下练习时遇到了困难。我需要找出id 不是max_id 在amount 最多的组中的频率。这应该考虑到包含至少两个不同人的组。
数据来自两个不同的表:max_id 来自 table1(我称之为a)以及user 和amount; id 来自 table2 (b) 以及组。
从上面的文字来看,条件应该是
(1) a.id<>b.max_id /* is not */
(2) people in group >=2
(3) a.id<> id of max amount
数据集看起来像
(一)
max_id user amount
(b)
group email
在之前的练习中,我必须按如下方式计算不同的人:
sel a.distinct users
a.max_id
b.id
from table1 as a
inner join table2 as b
on b.id=a.max_id
where
b.max_id is not null
and b.time is null
在上面的练习中不需要来自金额的信息。这是两个练习的主要区别,但结构和字段非常相似。
现在,我需要编辑上面的代码,以找出id 不是max_id 在amount 最多的组中的频率。仅当组具有至少两个不同的人/用户时,这才有意义。
我想我需要加入表格以获取组中最大数量的 id 并计算组中的人数,但我不知道该怎么做。
任何帮助将不胜感激。谢谢。
数据样本
max_id user amount id group email
12 1 -2000 12 house email1
312 1 0 54 work email1
11 32 -213 11 house email32
41 13 -43 78 work email13
312 53 -650 34 work email53
1 67 -532 43 defense email67
64 76 -9650 98 work email76
根据我的理解,根据上面的代码,练习所要求的内容,我应该在group 中找到id<>max_id 的值并且具有超过2 users 的值(即房屋、工作、防御)。
然后,我需要选择的是id <> id of max amount。
我希望这可以更清楚一点。
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
我已根据您之前的问题发布了一个回答,希望对您有用
-
谢谢@scaisEdge。我刚刚完成更新问题。我不知道这是否会导致您的答案发生变化。我试图尽可能地解释这个问题。感谢您的帮助。
-
您的问题似乎与我的答案无关,所以过了几分钟我删除了答案.. 无论如何您的问题还不清楚.. 尝试添加适当的数据样本和预期结果
-
@sciasEdge 我更新了这个问题。我希望它可以更清楚。我不了解组的部分以及如何计算最大值
标签: sql teradata-sql-assistant