【问题标题】:How do I add a column that marks one of each value?如何添加标记每个值之一的列?
【发布时间】:2019-10-24 15:35:50
【问题描述】:

我在 SQL 中加入两个表。我目前的 SQL 为:

SELECT table1.ProjectName AS "Project Name",
  table1.ProjectCost AS "Project Cost",
  table2.ExpenseName AS "Expense Name",
  table2.ExpenseCost AS "Expense Cost"
  FROM TABLE1 table1
  INNER JOIN TABLE2 table2
  ON table1.ProjectName = table2.ProjectName;

结果如下:

Project Name    | Project Cost  | Expense Name  | Expense Cost
------------------------------------------------------------
Project 1   | 123456        | Labor     | 12365  
Project 1   | 123456        | Rent      | 120000  
Project 2   | 8421              | (null)    | (null)  
Project 3   | 987654        | Paper     | 1023  
Project 3   | 987654        | Pens      | 546  

我想添加一行来标记每个项目名称之一,以便我可以在 Tableau 中对其进行过滤并汇总项目成本。

前:

Project Name    | Project Cost  | Expense Name  | Expense Cost  | Unique Value
----------------------------------------------------------------------------
Project 1   | 123456        | Labor     | 12365     | Y  
Project 1   | 123456        | Rent      | 12000     | N  
Project 2   | 8421      | (null)    | (null)        | Y  
Project 3   | 987654        | Paper     | 1023      | Y  
Project 3   | 987654        | Pens      | 546       | N  
Project 3   | 987654        | Party     | 9856      | N

【问题讨论】:

  • Project Number是哪一列?
  • 对不起,我的意思是项目名称
  • 你熟悉EXISTS子句吗?
  • @PM 77-1 不,我不是

标签: sql oracle-sqldeveloper tableau-api


【解决方案1】:

我想你可以使用滞后功能,其实我不久前就问过这个问题,我可以分享我的问题,也许它可以帮助你。但是,您可以创建一个临时表并根据滞后函数填充该列,而不是选择该值:

SELECT Only one value per ID - SQL Server

【讨论】:

  • 我意识到我忘了把我的代码放进去,所以我添加了它。如何在我的代码中使用它?
【解决方案2】:

你也可以使用排名:

select t.* 
     , case when lag(project_name) over (partition by 1 order by project_name, rownum) = project_name then 'N' else 'Y' end n
     , case when rank() over (partition by project_name order by rownum) >  1 then 'N' else 'Y' end n
from join_result

【讨论】:

  • 我意识到我忘了把我的代码放进去,所以我添加了它。如何在我的代码中使用它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 2021-05-26
  • 2021-11-19
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多