在新表中选择相同的帐号

wz1wpwve  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(284)

使用teradatasqlassistant,我希望能够提前一年提取一个表,但只能提取与前一年查询结果相匹配的表。这就是我要做的。我提取了一个表,其中包含特定列中的结果等于0表示否的信息。我想从该列中的结果等于1的前一年提取信息,但只包括我提取前一年结果时出现的帐号。例如,只提取与前一年相同的未来一年的客户帐号。
说明:我拉一个列中有0的表。从这一点上,我想看看哪一个帐户从一年前的表中成为1。表中有数百万个帐户,我只设置了10000个帐户,所以我想看看第一年没有产品的10000个帐户中,有多少在第二年变成了1。
我能做这个吗?如果是,怎么做?我一直在谷歌搜索,我不认为我解释了什么,我试图在我的谷歌查询做正确的,所以我提出了简短的结果。

3duebb1j

3duebb1j1#

谢谢你的澄清。这就简单了一点。我将把第二年的数据放在子查询中,过滤第一年的主表,数量=0。这将给你两个专栏,一个是第一年,一个是第二年。如果您只查找单个产品标识的此信息,则需要将此信息添加到这两个标识中 WHERE 条款。

SELECT TABLE_NAME.ACCOUNT_ID, TABLE_NAME.QUANTITY AS "2019" , YEAR_TWO.QUANTITY AS "2020"
FROM TABLE_NAME
LEFT JOIN 
          (
            SELECT *
            FROM TABLE 
            WHERE YEAR = 2020
          ) YEAR_TWO ON TABLE_NAME.ACCOUNT_ID = YEAR_TWO.ACCOUNT_ID
WHERE TABLE_NAME.YEAR = 2019
AND TABLE_NAME.QUANTITY = 0

如果你只想要第二年不再是0的帐户的百分比,你可以尝试这样的方法(把所有的1加起来,除以总数)

SELECT TABLE_NAME.YEAR,  SUM(YEAR_TWO.QUANTITY) / COUNT(YEAR_TWO.QUANTITY) AS PERCENTAGE_NOT_ZERO
FROM TABLE_NAME
LEFT JOIN 
          (
            SELECT *
            FROM TABLE 
            WHERE YEAR = 2020
          ) YEAR_TWO ON TABLE_NAME.ACCOUNT_ID = YEAR_TWO.ACCOUNT_ID
WHERE TABLE_NAME.YEAR = 2019
AND TABLE_NAME.QUANTITY = 0
GROUP BY TABLE_NAME.YEAR

相关问题