【发布时间】:2016-10-22 18:22:09
【问题描述】:
我正在比较 3 个数据表来满足相同的需求,并希望创建一个表来显示其中两个表的 MODE(以便提出正确值的建议)。我可能需要连接,因为我正在寻找具有相同 ID 和名称的所有行的模式。
表 1:
+----------+----------+------+ |需求编号 |姓名 |尺寸 | +----------+----------+------+ | 1 |理查德 | 42 | | 2 |理查德 | 42 | | 3 |理查德 | 42 | | 4 |理查德 | 36 | | 5 |理查德 | 36 | | 6 |理查德 | 36 | | 7 |理查德 | 36 | | 8 |卢克 | 14 | | 9 |卢克 | 14 | | 10 |卢克 | 14 | | 11 |卢克 | 14 | | 12 |卢克 | 14 | | 13 |卢克 | 25 | | 14 |卢克 | 25 | | 15 |卢克 | 25 | +----------+----------+------+表 2:
+----------------+-----------------+ | List1_DemandNo | List1_PenColor | +----------------+-----------------+ | 1 |白色 | | 2 |黑色 | | 3 |黑色 | | 4 |红色 | | 5 | ? | | 6 |红色 | | 7 |红色 | | 8 |黄色 | | 9 |黄色 | | 10 |黄色 | | 11 |绿色 | | 12 |黄色 | | 13 |绿色 | | 14 | ? | | 15 | ? | +----------------+-----------------+表 3:
+----------------+-----------------+ | List2_DemandNo | List2_PenColor | +----------------+-----------------+ | 1 |白色 | | 2 |绿色 | | 3 |绿色 | | 4 |红色 | | 5 | ? | | 6 |红色 | | 7 |红色 | | 8 |粉色 | | 9 |粉色 | | 10 |黄色 | | 11 |绿色 | | 12 |粉色 | | 13 |橙色 | | 14 |橙色 | | 15 |橙色 | +----------------+-----------------+所以我需要为每个具有相同姓名和体型的人生成推荐。建议应该是 table1 中所有行的 MODE,其中人的名字和大小相同(我需要连接名字和大小吗?)
另一个要求是所有问号“?”应该从模式/建议中排除。
所以我的结果表应该是这样的:
+------------+----------+------+------------+-------- ----+ |需求编号 |姓名 |尺寸 | List1_MODE | List2_MODE | +------------+----------+------+------------+-------- ----+ | 1 |理查德 | 42 |黑色 |绿色 | | 2 |理查德 | 42 |黑色 |绿色 | | 3 |理查德 | 42 |黑色 |绿色 | | 4 |理查德 | 36 |红色 |红色 | | 5 |理查德 | 36 |红色 |红色 | | 6 |理查德 | 36 |红色 |红色 | | 7 |理查德 | 36 |红色 |红色 | | 8 |卢克 | 14 |黄色 |粉色 | | 9 |卢克 | 14 |黄色 |粉色 | | 10 |卢克 | 14 |黄色 |粉色 | | 11 |卢克 | 14 |黄色 |粉色 | | 12 |卢克 | 14 |黄色 |粉色 | | 13 |卢克 | 25 |绿色 |橙色 | | 14 |卢克 | 25 |绿色 |橙色 | | 15 |卢克 | 25 |绿色 |橙色 | +------------+----------+------+------------+-------- ----+我了解 MODE 函数在 Teradata 中不起作用,我需要执行计数,但是使用 3 个表计算模式并排除 ?可悲的是超出了我的 SQL 技能 - 任何帮助将不胜感激!
非常感谢 理查德
【问题讨论】: