【问题标题】:Distinct datasource of a column [closed]列的不同数据源[关闭]
【发布时间】:2021-08-18 22:38:27
【问题描述】:

我有第一张桌子

表1

Idtask. Date.     Geo
1.       2020-01  france
2.       2020-03  inde

我还有第二张桌子2 表2

Idtask. Date.     Geo
1.       2020-01  france
2.       2020-03  inde

当我在两个表之间合并时

Select *
From table1
Union all
Select *
From table 2

我会得到结果

Idtask. Date.     Geo
1.       2020-01  france
2.       2020-03  inde
1.       2020-01  france
2.       2020-03  inde

我怎么知道 Idtask 是来自 Table1 还是 table2?如果你有任何想法?我添加了一个“表 1”列作为数据源,但我需要根据 Idtask 来计算 Idtask 的不同计数。

【问题讨论】:

  • 请在此处包含您真正想要的确切输出以及解释。
  • 你的意思是你想知道每个 idtask 在多少个表中?

标签: sql sql-server tsql sql-server-2016


【解决方案1】:

向您的联合查询添加一个计算列,以跟踪表的来源:

SELECT Idtask, Date, Geo, 1 AS source FROM table1
UNION ALL
SELECT Idtask, Date, Geo, 2 FROM table2;

例如,如果您需要按表源对联合查询进行排序,则可以按如下方式对上述内容进行子查询:

SELECT IdTask, Date, Geo
FROM
(
    SELECT Idtask, Date, Geo, 1 AS source FROM table1
    UNION ALL
    SELECT Idtask, Date, Geo, 2 FROM table2
) t
ORDER BY source;

【讨论】:

  • 我需要在 Idtask 上做不同的计数。这就是为什么我需要区分 Idtask。
  • 你可以做一个count(distinct idtask)来实现这个
  • @Sql 。 . .这回答了您在此处提出的问题。如果您有不同的问题(例如计算计数),请提出问题。
猜你喜欢
  • 1970-01-01
  • 2019-07-23
  • 1970-01-01
  • 2012-08-30
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多