首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速sql,连接到两列

加速sql,连接到两列
EN

Stack Overflow用户
提问于 2021-09-30 02:06:57
回答 1查看 41关注 0票数 0

日安。我加入到库存表的基础上,具体日期,商店和文章。连接似乎花费了太长时间。

只有一些商店会有一些商品。第一件商品只在A店有售,在B店没有。

我事先知道我查询的是商店A中的文章1和商店B中的文章2,因为这是已售出的商品。

而不是查询每个商店中两个商品的库存,我如何才能加快查询速度,我可以只连接特定的组合A1,B2,是否可以在FROM table中组合两列?谢谢

代码语言:javascript
复制
Q3_SOH AS (
  SELECT
    CONCAT(Article,"|",Site,"|",Calendar_Day) AS ID, 
    Site, 
    Article, 
    SOH_Cost, 
    SOH_Qty_EA, 
    Calendar_Day,   
     
  FROM
    `gcp-table`
  WHERE
    Calendar_Day BETWEEN DATE_ADD(startDate, INTERVAL -1 day) AND endDate
    AND Site IN (
        SELECT DISTINCT Site
        FROM  Q1)
    AND Article IN (
        SELECT DISTINCT Article
        FROM Q1))

嗨,谢谢你的帮助,非常聪明。我正在使用GCP bigquery,这些部分是WITH的一部分,Q1获取销售,Q3用于手头的库存。

然后连接和编写计算字段就相对容易了。这个SOH表是一个巨大的数据库。以这种方式加入似乎并不是一种进步,因为我仍然将所有的文章加入所有的商店。我相信所有的商店里都有商品,但大多数商店的数量都是零。我们可以多次使用同一篇文章。我可以写这样的东西吗?

代码语言:javascript
复制
in Q1 CONCAT(Site, Article) as ID



SELECT 
 site, article, soh_cost, soh_qty, date, 
 concat(site, article) AS ID
FROM 'gcp-b'
WHERE
concat(site, article) in DISTINCT(Q1.ID)

原始似乎是最快的。所用的时间最短。

EN

回答 1

Stack Overflow用户

发布于 2021-09-30 02:15:11

您可以使用连接来实现相同的效果

代码语言:javascript
复制
  SELECT
    CONCAT(Article,"|",Site,"|",B.Calendar_Day) AS ID, 
    B.Site, 
    B.Article, 
    B.SOH_Cost, 
    B.SOH_Qty_EA, 
    B.Calendar_Day
  FROM `gcp-table` as B
  JOIN Q1 as QS ON B.Site = QS.Site
  JOIN Q1 as QA ON B.Article = QA.Article
  WHERE  Calendar_Day BETWEEN DATE_ADD(startDate, INTERVAL -1 day) AND endDate

请注意,如果站点或文章在Q1中多次出现,请这样做:

代码语言:javascript
复制
  SELECT
    CONCAT(Article,"|",Site,"|",B.Calendar_Day) AS ID, 
    B.Site, 
    B.Article, 
    B.SOH_Cost, 
    B.SOH_Qty_EA, 
    B.Calendar_Day
  FROM `gcp-table` as B
  JOIN (SELECT DISTINCT SITE FROM Q1) as QS ON B.Site = QS.Site
  JOIN (SELECT DISTINCT ARTICLE FROM Q1) as QA ON B.Article = QA.Article
  WHERE  Calendar_Day BETWEEN DATE_ADD(startDate, INTERVAL -1 day) AND endDate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69385257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档