选择具有一组特定特征的行

吉尔

抱歉,我为手写波浪形的标题感到抱歉,在保持文本简短的同时,我想不出更好的描述。这是完整的问题。

在具有两列的表中,我想选择第一列中一个条目,该条目具有我在第二列中指定的所有值。这可以通过一个玩具示例(也可以在SQL Fiddle上更好地解释

假设我有一个这样的表:

CREATE TABLE t (fruit TEXT, color TEXT);

INSERT INTO t (fruit, color) VALUES
('banana', 'green'),
('banana', 'yellow'),
('apple', 'green'),
('apple', 'red'),
('apple', 'yellow'),
('strawberry', 'green'),
('strawberry', 'red');

给定多种颜色,我需要检索具有所有这些颜色的水果(您可以假设只有一种)-不多也不少。

因此,如果我查询“绿色和红色”,我应该得到“草莓”。但是,如果我查询“绿色和黄色”,则应该看到“香蕉”而不是“苹果”,因为后者也具有其他颜色。

到目前为止,我想出的是一个使用INTERSECT以下方法的可怕技巧

WITH cte AS (
  SELECT fruit FROM t WHERE color = 'green'
  INTERSECT SELECT fruit FROM t WHERE color = 'yellow')
SELECT fruit FROM cte;

当然会失败,因为会同时返回香蕉苹果。

有人有更好的计划吗?

男装

演示:db <>小提琴

您可以汇总颜色,并检查汇总后的数组是否等于期望颜色的数组。

SELECT
    fruit
FROM t
GROUP BY fruit
HAVING ARRAY_AGG(color ORDER BY color) = '{green, yellow}'

演示:db <> fiddle

要获得与订单无关的解决方案,您可以例如:

SELECT
    fruit
FROM t
GROUP BY fruit
HAVING ARRAY_AGG(color) @> '{yellow, green}'
   AND ARRAY_AGG(color) <@ '{yellow, green}'

要么

SELECT
    fruit
FROM t
GROUP BY fruit
HAVING ARRAY_AGG(color ORDER BY color) = 
   (SELECT ARRAY_AGG(unnest ORDER BY unnest) FROM unnest('{yellow, green}'::text[]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过联结表选择具有一组特定项的行

来自分类Dev

选择一组中具有最小值的所有数据框行

来自分类Dev

从数据框中选择具有多列值的唯一组合的行

来自分类Dev

如何选择共享一组值的具有相同ID的行?

来自分类Dev

给定Java集中的一组PK,如何选择该集中具有PK的所有行

来自分类Dev

Scala:具有特征的类,其构造函数采用具有一组平行特征的另一个类?

来自分类Dev

如何合并一组具有相同参考编号的行中的特定行,以及如何合并包含单个行且具有匹配参考编号的df

来自分类Dev

多次选择一组行

来自分类Dev

选择与一组前缀匹配的行

来自分类常见问题

如何从SQL中的一组行中选择特定行

来自分类Dev

如何从SQL中的一组行中选择特定行

来自分类Dev

如何从共享两个公共列的一组行中选择一列中具有最大值的熊猫行?

来自分类Dev

从上一行中减去具有DataFrame中上一组值的行

来自分类Dev

JQ:在一组值中选择具有键值的对象

来自分类Dev

在plsql中选择具有正数和负数的唯一组

来自分类Dev

熊猫数据框选择其中列表列包含一组特定元素的行

来自分类Dev

如何选择一组特定的行,然后选择与原始行相关的下一行

来自分类Dev

查找具有两列的唯一组合的所有行

来自分类Dev

查找具有两列的唯一组合的所有行

来自分类Dev

XPath:返回一组具有相同类型的标签内的特定标签的索引

来自分类Dev

如何拆分一组具有特定数字的字符串

来自分类Dev

我想知道,哪一组特定的列具有 Null 值

来自分类Dev

sqlite选择所有行,其中某些列在一组可能的值中

来自分类Dev

sqlite选择所有行,其中某些列在一组可能的值中

来自分类Dev

仅提取具有R中列值的唯一组合的那些行

来自分类Dev

如何插入或重复更新一组具有不同值的行

来自分类Dev

Excel:对一组行中的值进行平均,但仅当它们在列中具有特定值时才包括它们

来自分类Dev

选择包含一组特定姓氏的县

来自分类Dev

显示所有扩展名为.txt的文件中的一组特定行

Related 相关文章

  1. 1

    通过联结表选择具有一组特定项的行

  2. 2

    选择一组中具有最小值的所有数据框行

  3. 3

    从数据框中选择具有多列值的唯一组合的行

  4. 4

    如何选择共享一组值的具有相同ID的行?

  5. 5

    给定Java集中的一组PK,如何选择该集中具有PK的所有行

  6. 6

    Scala:具有特征的类,其构造函数采用具有一组平行特征的另一个类?

  7. 7

    如何合并一组具有相同参考编号的行中的特定行,以及如何合并包含单个行且具有匹配参考编号的df

  8. 8

    多次选择一组行

  9. 9

    选择与一组前缀匹配的行

  10. 10

    如何从SQL中的一组行中选择特定行

  11. 11

    如何从SQL中的一组行中选择特定行

  12. 12

    如何从共享两个公共列的一组行中选择一列中具有最大值的熊猫行?

  13. 13

    从上一行中减去具有DataFrame中上一组值的行

  14. 14

    JQ:在一组值中选择具有键值的对象

  15. 15

    在plsql中选择具有正数和负数的唯一组

  16. 16

    熊猫数据框选择其中列表列包含一组特定元素的行

  17. 17

    如何选择一组特定的行,然后选择与原始行相关的下一行

  18. 18

    查找具有两列的唯一组合的所有行

  19. 19

    查找具有两列的唯一组合的所有行

  20. 20

    XPath:返回一组具有相同类型的标签内的特定标签的索引

  21. 21

    如何拆分一组具有特定数字的字符串

  22. 22

    我想知道,哪一组特定的列具有 Null 值

  23. 23

    sqlite选择所有行,其中某些列在一组可能的值中

  24. 24

    sqlite选择所有行,其中某些列在一组可能的值中

  25. 25

    仅提取具有R中列值的唯一组合的那些行

  26. 26

    如何插入或重复更新一组具有不同值的行

  27. 27

    Excel:对一组行中的值进行平均,但仅当它们在列中具有特定值时才包括它们

  28. 28

    选择包含一组特定姓氏的县

  29. 29

    显示所有扩展名为.txt的文件中的一组特定行

热门标签

归档