[英]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.