向 Table 添加一列,将具有特定 ID 的每个条目标记为另一个值 - SQL/BigQuery

Add a Column to a Table that marks every entry with a specific ID as another value - SQL/BigQuery

这是我第一次 post 来这里,所以我希望我提供了足够的信息来明确我的问题。

我有一个 SQL/BigQuery table 可以简化为以下内容:

Sale ID Item Description
2540 111 Apple
2540 112 Lettuce
2541 113 Bread

基本上我想要实现的是创建一个新列,每当销售 ID 具有给定的项目时,标记将放置在共享该销售 ID 的所有行上。因此,以项目 111 为例,由于 Apple 是一种水果,因此前两行将包含标记“Contains Fruit in Sale”,新的 table 将如下所示:

Sale ID Item Description Marker
2540 111 Apple Contains Fruit in Sale
2540 112 Lettuce Contains Fruit in Sale
2541 113 Bread

希望这是有道理的。我不知道该怎么做。预先感谢您的帮助!

根据您的要求考虑以下查询:

SELECT
 A.SaleID,
 A.ItemID,
 A.Description,
 B.Marker
FROM
 `project.dataset.table` A
LEFT JOIN (
 SELECT
   SaleID,
   Marker
 FROM (
   SELECT
     SaleID,
     CASE
       WHEN Description IN ('Apple', 'Mango') THEN 'Contains Fruit in Sale'
   END
     AS Marker
   FROM
     `project.dataset.table`)
 WHERE
   Marker='Contains Fruit in Sale' ) B
ON
 A.SaleID =B.SaleID;

实际Table:

结果: