簡體   English   中英

關於分組依據的Oracle SQL查詢

[英]Oracle SQL query regarding group by

我有2張桌子,文章和看守者,其以下欄目和結構

SQL> desc caretaker;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 CID                                       NOT NULL NUMBER(5)
 CNAME                                              VARCHAR2(15)
 ADDRESS                                            VARCHAR2(20)
 SALARY                                             NUMBER(10,2)

SQL> desc article;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ART_NO                                    NOT NULL NUMBER(5)
 ART_TITLE                                          VARCHAR2(15)
 TYPE                                               VARCHAR2(15)
 A_DATE                                             DATE
 CID                                                NUMBER(5)
 MUSEUM_ID                                          NUMBER(5)

我需要執行2個查詢,

1)查找薪水超過20000且至少照顧2篇文章的人所關心的文章的詳細信息

2)顯示看護人的詳細信息,以照顧最多的物品。

對於第一個查詢,我已經做到了

select a.art_no,a.art_title,a.type,a.a_date from article a,caretaker c 
where a.cid = c.cid and c.salary > 20000;

現在我對如何提取由至少2篇文章照顧者關心的文章感到困惑!

2)對於第二個查詢,

select c.cid,c.cname,c.address,c.salary from caretaker c,article a 
where c.cid=a.cid 
    and count( select a.cid from article a group by a.cid ) = MAX(a.cid)?????

很困惑,請糾正我,謝謝(我不應該加入命令)

對於第一個查詢:

select a.art_no,a.art_title,a.type,a.a_date 
from article a,caretaker c
where a.cid = c.cid and c.salary > 20000
and c.cid in (select cid from article group by cid having count(cid) > 1)

SQL小提琴: http ://sqlfiddle.com/#!4 / bef24 / 16

對於第二個查詢:

select cname, a.art_no,a.art_title,a.type,a.a_date 
from article a,caretaker c
where a.cid = c.cid and c.cid = (select cid 
                                 from(select cid, count(cid)
                                      from article
                                      group by cid
                                      having count(cid) = (select max(count(cid)) 
                                                     from article group by cid)));

SQL小提琴: http ://sqlfiddle.com/#!4 / bef24 / 18

暫無
暫無

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

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