0

## 定時統計個欄位拍序列表結果，另存table執行卡住

codegeass 2 年前1837 瀏覽
``````小弟想將班上個科系分數做成績排名直接查詢並建置一個新表放入

SELECT
main.id, s1.國語, s2.英語，......sx.xx
FROM
(SELECT id FROM CLASS_A ORDER BY id) as main
JOIN
(SELECT @rownum := @rownum +1 AS 'rownum', id, 國語 FROM CLASS_A, (SELECT @rownum :=0) a ORDER BY 國語 DESC) AS s1
ON main.uid = s1.uid
JOIN
(SELECT @rownum := @rownum +1 AS 'rownum', id, 英語 FROM CLASS_A, (SELECT @rownum :=0) b ORDER BY 英語 DESC) AS s2
ON main.uid = s2.uid
.
.
.
.
(SELECT @rownum := @rownum +1 AS 'rownum', id, xx FROM CLASS_A, (SELECT @rownum :=0) x  ORDER BY xx DESC) AS sx
ON main.uid = sx.uid
+------------+----------+----------+-----------------+----------+----------+-----------------+
TABLE CLASS_A
+------------+----------+----------+-----------------+----------+----------+-----------------+
|         學號|       國語|       英語|             數學|       體育|       社會|             自然|
+------------+----------+----------+-----------------+----------+----------+-----------------+
| 49421101   |       30 |       90 |             100 |       30 |       40 |                0|
| 49421102   |       50 |       60 |              50 |       30 |       70 |               50|
| 49421103   |       70 |       80 |               0 |       30 |       90 |               85|
+------------+----------+----------+-----------------+----------+----------+-----------------+

+------------+----------+----------+-----------------+----------+----------+-----------------+
TABLE TMP_CLASS_A
+------------+----------+----------+-----------------+----------+----------+-----------------+
+------------+----------+----------+-----------------+----------+----------+-----------------+
|         學號|       國語|       英語|             數學|       體育|       社會|             自然|
+------------+----------+----------+-----------------+----------+----------+-----------------+
| 49421101   |       3 |       1 |                 1 |        1 |        3 |                0|
| 49421102   |       2 |       3 |                 2 |        2 |        2 |                1|
| 49421103   |       1 |       2 |                 3 |        3 |        1 |                2|
+------------+----------+----------+-----------------+----------+----------+-----------------+
``````

<== 這好怪異的說法.

codegeass iT邦新手 5 級 ‧ 2 年前 檢舉

(原始表)班上各科分數表單為CLASS_A

TMP_CLASS_A 的欄位是各科目班上的排名。
codegeass iT邦新手 5 級 ‧ 2 年前 檢舉

codegeass iT邦新手 5 級 ‧ 2 年前 檢舉

### 1 個回答

0
bluesky1213
iT邦新手 3 級 ‧ 2 年前

http://ithelp.ithome.com.tw/question/10069933

codegeass iT邦新手 5 級 ‧ 2 年前 檢舉

codegeass iT邦新手 5 級 ‧ 2 年前 檢舉

bluesky1213 iT邦新手 3 級 ‧ 2 年前 檢舉

join 是資料交集的觀念，因此需要比對
http://www.dotblogs.com.tw/hatelove/archive/2010/01/23/sql-join-concept.aspx?fid=69923

bluesky1213 iT邦新手 3 級 ‧ 2 年前 檢舉