【问题标题】:SQL query to join 2 tables and then combine columns and apply GroupBy on combined columnSQL查询连接2个表,然后组合列并在组合列上应用GroupBy
【发布时间】:2021-08-03 16:58:46
【问题描述】:

我有 2 个表名为 Table1(Id,Name,Surname) 和 Table2(Id,Pincode)

表 1 -

   Id   Name   Surname
    1    Ram    Charan
    2    Shyam  Mane
    3    Priya  Dhawal
    4    Ram    Charan

表 2 -

Id  Pincode
1    445502
2    885934
3    485502
4    445502

我想在字段'Id' 上加入Table1Table2,并通过连接列Name,Surname,Pincode 创建列Name|Surname|Pincode,最后在Name|Surname|Pincode 上应用GroupBy()

预期输出:-

Name|Surname|Pincode    Count of Ids
Ram|Charan|445502             2
Shyam|Mane|885934             1
Priya|Dhawal|485502           1

【问题讨论】:

    标签: mysql sql apache-spark


    【解决方案1】:
    SELECT CONCAT_WS('|', Name, Surname, Pincode) `Name|Surname|Pincode`,
           COUNT(*) `Count of Ids`
    FROM table1
    JOIN table2 USING (Id)
    GROUP BY `Name|Surname|Pincode`;
    

    【讨论】:

      【解决方案2】:

      你可以试试下面的简单查询-

      SELECT CONCAT(Name, '|', Surname, '|', Pincode) Name|Surname|Pincode, COUNT(*)
        FROM TABLE_1 T1
        JOIN TABLE_2 T2 ON T1.Id = T2.Id
       GROUP BY CONCAT(Name, '|', Surname, '|', Pincode);
      

      【讨论】:

      • 我猜是 CONCAT(T1.Name, '|', T1.Surname, '|', T2.Pincode) ,这是对的吗?
      • @PiyushS.Wanare 没有区别 - 这些名称没有歧义。
      猜你喜欢
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多