当前位置: 首页 > 知识库问答 >
问题:

ANDROID:在SQLite db中搜索具有3列相等值的行

锺离霖
2023-03-14

我试图搜索一个表(表1),以获取每列具有相同值(amount、dayofweek和category)的行。然后,我想将这些行复制到一个新表中(表2)。

TABLE1

rowid || AMOUNT  || DAYOFWEEK  || CATEGORY  ||    DATE
------------------------------------------------------------
1     ||    30   ||    MON     ||    CAT1   ||  10/04/2017
2     ||    40   ||    TUE     ||    CAT4   ||  11/04/2017
3     ||    30   ||    MON     ||    CAT1   ||  18/04/2017
4     ||    50   ||    SUN     ||    CAT2   ||  23/04/2017


TABLE2 (DESIRED OUTCOME)

rowid || AMOUNT  || DAYOFWEEK  || CATEGORY  ||     DATE
------------------------------------------------------------
  1   ||    30   ||    MON     ||    CAT1   ||  10/04/2017
  2   ||    30   ||    MON     ||    CAT1   ||  18/04/2017

从上面的场景中,我想从TABLE1复制第1行和第3行的内容并将它们插入到TABLE2中。关于如何在Android上为SQLite编写代码的任何建议?

共有1个答案

祁曦哲
2023-03-14

通过从表1中选择重复项,可以使用sql语法插入表2,如下所示(尚未测试):

INSERT INTO TABLE2 (AMOUNT, DAYOFWEEK, CATEGORY)
SELECT
    AMOUNT, DAYOFWEEK, CATEGORY
FROM
    TABLE1
GROUP BY
    AMOUNT, DAYOFWEEK, CATEGORY
HAVING 
    COUNT(*) > 1

您可以使用上面的选择pouboard一个对象类的ArrayList并使用该ArrayList进行插入。

 类似资料:
  • 问题内容: 我有一个看起来像这样的架构: 我想找到b的所有值,其中b的值由2个或更多实体共享: 查询依据: 应该返回和。 问题答案: 您可以使用2 的字段对字段进行聚合,然后添加子聚合以找到匹配的字段:

  • 问题内容: 我有多列值相等。我想查找具有3列以上具有相等值的行ID。 表结构就像- 问题答案: 数据并检查是否相等,请尝试此技巧。

  • 问题内容: 首先采取klurudge解决方案,使用哨兵方法(必须让您的程序不允许输入哨兵值): 假设您忘记了阻止程序中的哨兵值,用户在B字段中输入了-2147483648,而A为空。上面的代码报告为true,应报告为false,不应报告为true或null。 比较可为空字段上的相等性的最简洁方法是什么?A == B仅应报告true或false,而不管该字段是否可为空。 问题答案: 也许IS [NO

  • 问题内容: 我试图找到具有重复值,但仅基于选定的列数,而不是单个列或整个行的行。例如,如果我的表如下所示: 我的问题是: 查找行的“地址和状态”字段与另一行的“地址和状态”字段匹配的行的所有ID。 该查询的答案将是: 有任何想法吗? 意见建议: 如何从单个表中选择同一行中的多列值 问题答案: 请尝试以下方法:

  • 问题内容: 我有一个包含许多列的巨大表,并且我知道该列有时带有一些特定的值’MyValue’。如何在一个包含“ MyValue”的特定表中选择所有行,而不管在哪一列中。 我在这里找到相关主题: 如何在SQLServer数据库的任何位置找到值? 但是我的查询需要一个较小的大炮。我知道表名,就是“ MyTable”。我不需要搜索整个数据库。 问题答案: 要在一个简单的语句中不使用特殊过程的情况下执行此

  • 问题内容: 在pandas中,给定一个DataFrame D: 当三列或更多列返回以下内容时,如何返回其所有列具有相同内容的行: 请注意,当所有值均为NaN时,它将跳过行。 如果这仅仅是两列,我通常会这样做,但是我不知道如何针对两列以上的DataFrames进行概括。 问题答案: 与Andy Hayden的答案类似,检查min是否等于max(然后所有行元素都是重复的):