首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以从两个单独的表中各返回一个变量,但只有当每个表中的两个变量匹配时才返回?

是否有一种方法可以从两个单独的表中各返回一个变量,但只有当每个表中的两个变量匹配时才返回?
EN

Stack Overflow用户
提问于 2022-08-25 22:57:41
回答 1查看 16关注 0票数 0

我有两个独立的查询,它们都能正确工作。我在每个表中有两个常见的列"Day“和"Wallet”。我有一个返回表(日,钱包,提款)和另一个返回表(日,钱包,销售)。我希望有一个查询,返回联接“取款”和“销售”,但只对钱包有销售和提款在同一天。

下面的代码允许m调用bonds_table (取款)和sales_table,但我不知道如何返回一个表,该表显示“已赎回的dexSHARE”和“已售出的dexSHARE”。

代码语言:javascript
运行
复制
WITH
  bonds_table AS(
    SELECT
      DATE_TRUNC('day', "call_block_time") AS "Day",
      "_depositor" AS Wallet,
      sum("output_0") / 1e18 AS "dexSHARE Redeemed"
    FROM
      dexfinance."wBNB_bond_for_dexshare_call_redeem"
    WHERE
      "call_success" IS TRUE --Verify transaction was successful
    group by
      1,
      2
  ),
  --This table is for sales of the tokens
  sales_table AS(
    SELECT
      derivedTable1."Day",
      derivedTable1."to" AS Wallet,
      sum(derivedTable1."amountIn" / 1e18) AS "dexSHARE Sold"
    FROM
      -- This combines the sales from both tables so they can be summed
      (
        SELECT
          DATE_TRUNC('day', "call_block_time") AS "Day",
          "amountIn",
          "to"
        FROM
          pancakeswap_v2."PancakeRouter_call_swapExactTokensForETH" -- This table is for tokens to wBNB
        WHERE
          "path" [1] = '\xf4914e6d97a75f014acfcf4072f11be5cffc4ca6' -- Sale of dexSHARE
          AND call_success is TRUE -- Verify transaction was successful
          AND "call_block_time" >= TO_TIMESTAMP('2022-05-24', 'yyyy-mm-dd')
        UNION
        SELECT
          DATE_TRUNC('day', "call_block_time") AS "Day",
          "amountIn",
          "to" AS Wallet
        FROM
          pancakeswap_v2."PancakeRouter_call_swapExactTokensForTokens" -- This table is for tokens to other tokens (not wBNB)
        WHERE
          "path" [1] = '\xf4914e6d97a75f014acfcf4072f11be5cffc4ca6' -- Sale of dexSHARE
          AND call_success is TRUE -- Verify transaction was successful
          AND "call_block_time" >= TO_TIMESTAMP('2022-05-24', 'yyyy-mm-dd') -- Sales after this date (launch of Bond)
      ) AS derivedTable1
    GROUP BY
      1,
      2
  )

我知道我需要在结尾附加一个SELECT语句,但是我不知道如何构造它。有人能帮我朝正确的方向走吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-25 23:06:49

当然,这取决于你想要实现什么。

但你可以从。

这将在同一天加入CTE和钱包,并列出“值”

代码语言:javascript
运行
复制
WITH
  bonds_table AS(
    SELECT
      DATE_TRUNC('day', "call_block_time") AS "Day",
      "_depositor" AS Wallet,
      sum("output_0") / 1e18 AS "dexSHARE Redeemed"
    FROM
      dexfinance."wBNB_bond_for_dexshare_call_redeem"
    WHERE
      "call_success" IS TRUE --Verify transaction was successful
    group by
      1,
      2
  ),
  --This table is for sales of the tokens
  sales_table AS(
    SELECT
      derivedTable1."Day",
      derivedTable1."to" AS Wallet,
      sum(derivedTable1."amountIn" / 1e18) AS "dexSHARE Sold"
    FROM
      -- This combines the sales from both tables so they can be summed
      (
        SELECT
          DATE_TRUNC('day', "call_block_time") AS "Day",
          "amountIn",
          "to"
        FROM
          pancakeswap_v2."PancakeRouter_call_swapExactTokensForETH" -- This table is for tokens to wBNB
        WHERE
          "path" [1] = '\xf4914e6d97a75f014acfcf4072f11be5cffc4ca6' -- Sale of dexSHARE
          AND call_success is TRUE -- Verify transaction was successful
          AND "call_block_time" >= TO_TIMESTAMP('2022-05-24', 'yyyy-mm-dd')
        UNION
        SELECT
          DATE_TRUNC('day', "call_block_time") AS "Day",
          "amountIn",
          "to" AS Wallet
        FROM
          pancakeswap_v2."PancakeRouter_call_swapExactTokensForTokens" -- This table is for tokens to other tokens (not wBNB)
        WHERE
          "path" [1] = '\xf4914e6d97a75f014acfcf4072f11be5cffc4ca6' -- Sale of dexSHARE
          AND call_success is TRUE -- Verify transaction was successful
          AND "call_block_time" >= TO_TIMESTAMP('2022-05-24', 'yyyy-mm-dd') -- Sales after this date (launch of Bond)
      ) AS derivedTable1
    GROUP BY
      1,
      2
  )
SELECT bo."Day",bo."Wallet" ,bo."dexSHARE Redeemed",dexSHARE Sold"
FROM bonds_table bo JOIN sales_table sa ON sa."Wallet2  = o."Wallet"  AND sa."Day" = bo."Day"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73494436

复制
相关文章

相似问题

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