VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

请教:排序名次的代码不理解

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
480615



註冊時間: 2008-04-11
文章: 93


第 1 樓

發表發表於: 星期五 四月 22, 2011 9:16 pm    文章主題: 请教:排序名次的代码不理解 引言回覆

SELECT 语文, (SELECT COUNT(*)+1 FROM xscj.dbf WHERE a.语文< 语文) AS 语文名次 FROM xscj.dbf AS a
这是一个表本身的嵌套查询。它是怎样进行执行的?也就是解题思路如何?
1、这里a.语文< 语文中的语句的a.语文别名a是指何表的别名? 语文是指何表中的橍名?
2、为什么相同的分数只计算一次?
3、名次号为什么会不連续的?从何语句会产生这种不連续的效果?
见图
图1会原表,图2为排序后的表。请行家指教。多谢了。
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 2 樓

發表發表於: 星期六 四月 23, 2011 6:26 am    文章主題: 引言回覆

我覺得,這個式子有問題
名次會缺漏, 如上例結果,缺了第3,5,6,..名
既然答案不正確,就不必討論解題思路了


若要排名次, 這樣比較簡單
SELECT 語文,RECNO() as 語文名次 FROM (SELECT 語文 FROM xscj.dbf GROUP BY 語文) a
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 3 樓

發表發表於: 星期六 四月 23, 2011 5:17 pm    文章主題: 引言回覆

ckp6250:
1、要求是:相同的成绩为一个并列名次号,是要产生不連续的名次号.答案是正确的。
2、运行你的代码:SELECT 語文,RECNO() as 語文名次 FROM (SELECT 語文 FROM xscj.dbf GROUP BY 語文) a
提示找不到列语文
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 4 樓

發表發表於: 星期六 四月 23, 2011 8:15 pm    文章主題: 引言回覆

1.有第1名,第2名,第4名,沒有第三名?我不能理解耶。如果您說答案是正確的,那麼,您的問題3:『名次號為什麼會不連續的?從何語句會產生這種不連續的效果?』要問什麼呢?

2.又再測試一下,我能確認語句沒有問題,但因為沒有您的xscj.dbf,無法實測,不知是否為繁簡問題,您自行修正一下。

原貼為正排,分數由小而大,不合名次邏輯,小修如下
3.SELECT 語文,RECNO() as 語文名次 FROM (SELECT 語文 FROM xscj.dbf GROUP BY 語文 order by 語文 desc) a
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 5 樓

發表發表於: 星期六 四月 23, 2011 9:29 pm    文章主題: 引言回覆

ckp6250:
又运行你的代码SELECT 語文,RECNO() as 語文名次 FROM (SELECT 語文 FROM xscj.dbf GROUP BY 語文 order by 語文 desc) a

提示找不到列语文!!
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 6 樓

發表發表於: 星期日 四月 24, 2011 6:07 am    文章主題: 引言回覆

繁簡字問題吧
SELECT 语文,RECNO() as 语文名次 FROM (SELECT 语文 FROM xscj.dbf GROUP BY 语文 order by 语文 desc) a
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 7 樓

發表發表於: 星期日 四月 24, 2011 9:45 am    文章主題: 引言回覆

ckp6250:
通过了,谢谢!原来是繁簡字。再一次请求。能否讲一下“FROM (SELECT 语文 FROM xscj.dbf GROUP BY 语文 order by 语文 desc) a ”中的含义。
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 8 樓

發表發表於: 星期日 四月 24, 2011 10:01 am    文章主題: 引言回覆

FROM (SELECT 语文 FROM xscj.dbf GROUP BY 语文 order by 语文 desc) a
FROM (SELECT 语文 FROM xscj.dbf GROUP BY 语文 order by 语文 desc) as a
這兩行是一樣的
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
480615



註冊時間: 2008-04-11
文章: 93


第 9 樓

發表發表於: 星期日 四月 24, 2011 10:18 am    文章主題: 引言回覆

(SELECT 语文 FROM xscj.dbf GROUP BY 语文 order by 语文 desc)
是否可这样理解:先把xscj.dbf中语文进行分组并从降序形成一个表,再查询来自别名为A的表
SELECT 语文,RECNO() as 语文名次 FROM (先把xscj.dbf中语文进行分组并从降序形成一个表)a
不知理解是否对?
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 10 樓

發表發表於: 星期日 四月 24, 2011 11:39 am    文章主題: 引言回覆

You got it
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 11 樓

發表發表於: 星期日 四月 24, 2011 3:42 pm    文章主題: 引言回覆

480615 寫到:

1、要求是:相同的成績為一個並列名次號,是要產生不連續的名次號.答案是正確的。
[/color]


參不透玄機何在?
既然講排名,不就應該是第1名,第2名,第3名,第4名.....一直排下去嗎?
為什麼缺第3名的答案會是正確的呢?
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 12 樓

發表發表於: 星期一 四月 25, 2011 7:07 pm    文章主題: 引言回覆

为什么連续排名是不合理的,如果并列成绩越多,成绩差的名次与好的之间位子相差不大。有9753人,620-650这段分数中有500多人成绩是并列的,最差18分它的名次是572名。所以連续排位号是不合理的。不連续的排名是合理的。见2.JPG, 如果連续排。-60分为第6名。不連续排为13。如果划线的看不出哪些是并列的。哪些不并列。
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 13 樓

發表發表於: 星期一 四月 25, 2011 9:24 pm    文章主題: 引言回覆

了解!
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 14 樓

發表發表於: 星期一 四月 25, 2011 10:03 pm    文章主題: 引言回覆

现在反过来再来讨论:SELECT 语文, (SELECT COUNT(*)+1 FROM xscj.dbf WHERE a.语文< 语文) AS 语文名次 FROM xscj.dbf AS a
这是一个表本身的嵌套查询。它是怎样进行执行的?也就是解题思路如何?
1、这里a.语文< 语文中的语句的a.语文别名a是指何表的别名? 语文是指何表中的橍名?
2、为什么相同的分数只计算一次?
3、名次号为什么会不連续的?从何语句会产生这种不連续的效果?
哪位行家能指教一下吗?
回頂端
檢視會員個人資料 發送私人訊息
480615



註冊時間: 2008-04-11
文章: 93


第 15 樓

發表發表於: 星期二 四月 26, 2011 7:26 pm    文章主題: 引言回覆

ckp6250
我提出的问题,请指教一下。
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作