簡體   English   中英

SQL多組查詢,一對一關系

[英]SQL multiple group by query, for one to many relationship

我是sql的新手(不常使用的用戶),我有一個相對復雜的查詢(至少從我的角度來看),我沒有運氣。

我的關系如下。

人們只有一份工作。 人們也有一個收藏夾愛好。

我想查詢所有人(這部分很容易)。 我想按人們擁有的工作將他們分組。 在為求職工作分組的過程中,我想按“收藏夾愛好”將這些人“分組”。

有誰知道我怎么把這個查詢放在一起? 我真的很努力!

給這些人提供以下名稱,工作和愛好的樣本

   names      obs        hobbies
Alice,      Engineer,    Baseball
Amanda,     Engineer,    Baseball
Adrian,     Engineer,    Hockey
Bill,       Engineer,    Hockey
Bob,        Teacher,     Tennis
Mike,       Teacher,     Tennis
Sansa,      Teacher,     Golf
Jeff,       Teacher,     Golf

我想要這樣的結果

Group A:
    subgroup i: alice, amanda
    subgroup ii: adrian, bill
Group B:
    subgroup i: bob, mike
    subgroup ii: sansa, jeff

我非常感謝您的幫助。 干杯。

SQL查詢返回的結果集類似於表-所有行都具有相同的列。 您可以按工作和愛好對事物進行分組:

select job, hobby, group_concat(name) as names
from table1
group by job, hobby
order by job, hobby;

您可以使用變量枚舉:

select (@rn := @rn + 1) as grp, job, hobby, group_concat(name) as names
from table1 cross join
     (select @rn := 0) vars
group by job, hobby
order by job, hobby;

這樣夠嗎? 它將給組編號像1、2、3、4,而不是在每個作業中重新編號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM