使用条件将数据插入配置单元时出错
Posted
技术标签:
【中文标题】使用条件将数据插入配置单元时出错【英文标题】:error while inserting data into hive using condition 【发布时间】:2019-08-28 13:37:15 【问题描述】:嗨,我需要将值插入一个新表(由 3 个列组成),其中我有一个名为 verad_id 的列,它有 250 个值,现在在插入数据时,我需要加载 6 个 verad_id 的所有值,它的值为零用于 reage 字段。
示例主表:-
verad_id reage value
998 0 38
8484 4 43
998 3 33
432 0 23
233 43 26
556 0 53
432 9 33
现在我需要为 verad_id 998 和 432 插入期望值,其 reage 值为 0
插入表格后应该是这样的
verad_id reage value
8484 4 43
998 3 33
233 43 26
556 0 53
432 9 33
我试过了,但没有用
案例1:-
insert into finaltable
select
verad_id,
reage,
value
from main_table where verad_id = '998' or verad_id = '432' and reage != 0;
试过了,但这个查询不起作用
案例2:-
insert into finaltable
select
verad_id,
reage,
value
from main_table where verad_id in ( '998' , '432') and reage != 0;
在这种情况下,我能够加载 reage 不等于 0 的 verad_id '998' 和 '432' 的数据,这里我缺少其他 verad_id 的数据。
谁能帮我解决这个问题
【问题讨论】:
value
列有多重要,它的值应该与reage
值配对还是无关紧要?
@Peter yes value 列很重要,因为我需要根据与 reage 配对的值对该列进行一些攻击。
【参考方案1】:
简单地说,您要做的是从表 main_table
中获取分组数据,每个组按 DESC
顺序按列 reage
排序。
获得这些结果后,您希望将它们插入名为 finaltalbe
的表中
在这种情况下,您可以使用子选择来定义结果的显示顺序,然后围绕该顺序选择一个组,mysql 将显示每个分组集中第一行的值。
INSERT INTO finaltable
SELECT * FROM (SELECT * FROM main_table ORDER BY `reage` DESC) AS `sorted` GROUP BY `verad_id`;
这将导致表 finaltable
包含以下数据
| verad_id | reage | value |
|----------|-------|-------|
| 233 | 43 | 26 |
| 432 | 9 | 33 |
| 556 | 0 | 53 |
| 998 | 3 | 33 |
| 8484 | 4 | 43 |
【讨论】:
以上是关于使用条件将数据插入配置单元时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 WPF 中的 Access 数据库中获取给定条件的日期时出错