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 應該使用員工代號而不是員工姓名,員工表應與考勤表通過員工代號建立一對多關...