Oracle資料庫查詢問題,一對多多表統計查詢

2022-02-23 11:03:12 字數 1465 閱讀 9160

1樓:

select a.id,

(select count(*) from b where a.id=b.id group by id)  as "總的"

(select count(*) from b where a.id=b.id and b.type='好的' group by id) as "好的",

(select count(*) from b where a.id=b.id and b.type='壞的' group by id) as "壞的",

(select count(*) from b where a.id=b.id and b.type='好的' group by id)

/(select count(*) from b where a.id=b.id group by id) as "良品率"

(select  n1 from

(select sum(c.p1) as n1,b.id from c join b on b.

id=c.id and b.pid=c.

pid and b. b.type='好的' ) t1 where t1.

id=a.id) as"好的b每一個*c的某個屬性的總和"

from a

2樓:匿名使用者

select

id,count(b.id) as 總的,

count(case when b.狀態='好的' then 1 else null end) as 好的,

count(case when b.狀態='壞的' then 1 else null end) as 壞的,

count(case when b.狀態='好的' then 1 else null end)/count(b.*) as 良品率,

sum(when b.狀態='好的' then c.某個屬性 else 0 end) as 好的b每一個*c的某個屬性的總和

from

a,b,c

where

a.id=b.id

and b.name=c.name

大體是這樣的

請教專家:oracle大資料量一對多表查詢問題

3樓:匿名使用者

實際情況可能會這樣,表1有產品的名稱,表2沒有產品的名稱。所以如果在查詢中,要包含表1中的欄位的話,就要用到關聯,所以最好,將表1和表2都在id上建索引。再關聯;如果不包含表1的話,只需給表2建索引。

根據這裡的環境來看,走索引會比走全表掃描來的快些。

然後可以在sqlplus環境下,啟動跟蹤功能,檢視這個語句的執行計劃情況

sql優化方面,可以參考oracle效能調整方面的書籍以上參考!

4樓:茗茶堂

1、在表2給該id欄位建立索引;

2、select * from 表2 where id = ?;

oracle資料庫連線查詢問題,在oracle資料庫中如果查詢一個資料庫中有哪幾張表?

使用外連線時,要確定那邊的資訊全顯示就放在相應外連線的那邊。你要理解這不同的連線產生的效果就知道何時用了相等連線 要連線的兩個表符合查詢條件 記錄才會顯示自連線和相等連線一樣吧 左外是左表的資料全部顯示 而右面顯示符合條件的資料 比如 學生表和成績表 學生資訊要全顯示 成績匹配學生 匹配不上的顯示空...

如何修改oracle資料庫查詢的預設大小寫狀態

使用oracle時,預設情況下是,大寫的,這個是oracle公司規定這樣的,但是它是有大小區分的,如果要小寫你要在建立語句是特別宣告,就是用 雙引號 把要弄成小寫的引起來。不然你就已經預設它為大寫,最後在以後的查詢中無論你使用大寫還是小寫,它的最終形式都是大寫!小寫方式舉例 sql create t...

Access資料庫問題查詢問題,求助。

試試 q1 select from 學生 where year 出生日期 1994 q2update 學生 set 獎學金 獎學金 500 where 獎學金 2000 access資料庫查詢語句問題,求助!考勤表的r eid 應該使用員工代號而不是員工姓名,員工表應與考勤表通過員工代號建立一對多關...