顯示具有 SQL專家 標籤的文章。 顯示所有文章
顯示具有 SQL專家 標籤的文章。 顯示所有文章

2018年4月30日 星期一

分組次數分配的SQL



select max(建議金額), min(建議金額)
from suggesions

select round(建議金額/10000-0.5)*10000, count(*)
from suggesions
where 建議金額 != 0
group by round(建議金額/10000-0.5)*10000

2007年1月31日 星期三

建構 MINUS 等效式

像 Informix 這種不支援 MINUS 運算子的,建構 MINUS 等效式就很重要。
MINUS 運算子第一個運算元的運算式稱為主查詢
第二個運算元的運算式稱為副查詢


select first_name, second_name from doctor
MINUS
select first_name, second_name from doctor where dept = "surgery"


上式是找出不是外科部的同名同姓醫生。

如上式,select * from doctor 為主查詢,
select * from doctor where id == 3 為副查詢。

一般有兩種建構法,
第一是將副查詢的 WHERE 條件作反向式:

select * from fred
WHERE id != 3;

第二種將副查詢改成投射 rowid 的查詢,令其為 R
並對主查詢加入 rowid NOT IN 副查詢的條件式:

select * from doctor
WHERE rowid NOT IN (select rowid from fred where id = 3);