我有2個表中的數據,我想創建一個報告。sql select語句與組通過
表A:
- tableAID(主鍵)
- 名稱
表B:
- tableBID(主鍵)
- 級
- 標籤leAID(外鍵,參考表A)
這兩個表還有很多,但這些是相關的列。
我想要運行的查詢,從概念上講,是這樣的:
select TableA.name, avg(TableB.grade) where TableB.tableAID = TableA.tableAID
當然,問題是,我使用的是聚合函數(AVG),我可以把它改寫這樣的:
select avg(grade), tableAID from TableB group by tableAID
但是我只能得到TableA的ID,而我真的需要名稱列出現在TableA中,而不僅僅是ID。
是否可以在一個語句中編寫查詢來完成此操作,還是我首先需要執行列出的第二個查詢,獲取id列表,然後查詢TableA中每個記錄的名稱列...在我看來,我失去了一些東西很明顯這裏,但我(很明顯)不是SQL大師...
+1對於響應速度 - 是發佈後的15秒或20秒! – amelvin 2010-03-16 18:21:47
是的,不知何故,他預先計算答案。或者可能只是一個非常好的緩存算法。 – 2010-03-16 19:06:26
@amelvin,@Larry - 我承認,我是一個機器人:( – 2010-03-16 19:11:17