Sql 如何基于两个条件联接两个表并对一列求和?

Sql 如何基于两个条件联接两个表并对一列求和?,sql,pyspark,Sql,Pyspark,我正在对pyspark进行一些类似sql的查询。我有两张表table和table1 table.show() +--------------------+---------------+-------------------+----------+----------+-----+ | identifier|identifier_type| timestamp|device_lat|device_lon|count| +-------------------

我正在对
pyspark
进行一些类似sql的查询。我有两张表
table
table1

table.show()

+--------------------+---------------+-------------------+----------+----------+-----+
|          identifier|identifier_type|          timestamp|device_lat|device_lon|count|
+--------------------+---------------+-------------------+----------+----------+-----+
|ccf7758a-155f-4eb   |           gaee|2020-03-17 13:00:00| 40.764214| -73.98244|   19|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 14:00:00| 40.761467| -73.98039|   14|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 00:00:00| 40.760067| -73.97952|   12|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 15:00:00| 40.759586| -73.98214|    9|
|2f4bd30c-0a59-4da   |           gaee|2020-03-18 23:00:00| 42.693657| -73.80621|    7|
|2f4bd30c-0a59-4da   |           idxx|2020-03-17 19:00:00| 40.768757|-73.621605|    7|

如果相同的标识符出现在相同的时间戳上,并且具有类似于

table1.show()

+--------------------+---------------+-------------------+-----+
|          identifier|identifier_type|          timestamp|count|
+--------------------+---------------+-------------------+-----+
|ccf7758a-155f-4eb   |           gaee|2020-03-17 13:00:00|   34|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 14:00:00|   31|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 00:00:00|   25|
|ccf7758a-155f-4eb   |           gaee|2020-03-17 15:00:00|    9|
|ccf7758a-155f-4eb   |           gaee|2020-03-19 15:00:00|    9|
|2f4bd30c-0a59-4da   |           idxx|2020-03-18 23:00:00|   14|
|2f4bd30c-0a59-4da   |           idxx|2020-03-17 16:00:00|    7|
|2f4bd30c-0a59-4da   |           idxx|2020-03-17 19:00:00|    7|

如果表中的列完全相同,那么首先将所有列进行
合并就更容易了

SELECT identifier, identifier_type, timestamp, SUM(count) as count
FROM (
  SELECT identifier, identifier_type, timestamp, count
  FROM table 
  UNION ALL
  SELECT identifier, identifier_type, timestamp, count
  FROM table1
)
GROUP BY identifier, identifier_type, timestamp

编辑:实际上“相同”列不是必需的,但它们应该具有按数据类型兼容的列
标识符、标识符类型、时间戳、计数

如果表具有完全相同的列,那么首先将所有列
合并就更容易了

SELECT identifier, identifier_type, timestamp, SUM(count) as count
FROM (
  SELECT identifier, identifier_type, timestamp, count
  FROM table 
  UNION ALL
  SELECT identifier, identifier_type, timestamp, count
  FROM table1
)
GROUP BY identifier, identifier_type, timestamp

编辑:实际上“相同”列不是必需的,但它们应该有列
identifier、identifier\u type、timestamp、count
与数据类型兼容在SQL中,您可以
联合所有的
两个表,然后使用
按标识符分组,identifier\u type,timestamp
计算
总和(计数)
。这有帮助吗?在SQL中,您可以
合并所有
两个表,然后使用
按标识符、标识符类型、时间戳进行聚合
计算
总和(计数)
。这有用吗?谢谢。我是否可以添加条件
,其中时间戳>=2020-03-19
。我想要的是
2020-03-19之后的数据
当然,请在
分组之前进行操作
line谢谢。我是否可以添加条件
,其中时间戳>=2020-03-19
。我想要的是
2020-03-19之后的数据
当然,在
按行分组之前进行