我目前有一個包含497k個單詞的表。每個單詞及其在英語中的相對頻率是一排。我想創建另一個列,根據它們的頻率從1到497k(此列表中的單詞數)排序,最高頻率爲1,依此類推。我怎樣才能做到這一點?我使用MySQL的54年5月1日根據另一列值的順序對錶中的所有行進行編號
回答
我想出這個(複雜的,但也許快)一個語句的解決方案:
update vocabulary SET rank =
(
SELECT ranking.rank FROM (
SELECT @rownum:[email protected] + 1 as rank, voca.word
FROM
(
SELECT v.word, v.frequency
FROM vocabulary v
ORDER BY v.frequency DESC
) voca,
(SELECT @rownum := 0) r
) ranking
WHERE ranking.word = vocabulary.word
);
我相信這可以進一步optimzed但它可能是一個很好的起點指出有一個單一的聲明的解決方案。
此外,這可能仍然存在排名不同但詞頻相同的行。
這裏是一個SQL搗鼓它: http://sqlfiddle.com/#!2/a00e2/1
看起來很棒!我從來沒有見過sqlfiddle。我會盡快嘗試。 Ty – user1515381 2012-07-10 17:11:56
很高興爲您效勞。 :) – 2012-07-10 17:17:31
它沒有工作:/。我忘了提到同一個詞可以多次出現。數據庫中的唯一條目由一個詞和一個PoS標籤組成。我在亂搞你的代碼,但無法讓它取出PoS標籤。任何幫助? – user1515381 2012-07-10 19:16:34
- 1. 根據另一個列表值對列表的索引值進行排序
- 2. 根據另一列「重置」中的值對實例進行連續編號
- 3. 如何根據另一個列表對列表進行排序?
- 4. 根據r中的數字列表順序對字符列表進行排序
- 5. 如何根據其中之一的順序對兩個列表進行排序?
- 6. 根據單獨陣列的順序對陣列進行排序
- 7. 使用tablesorter根據另一列的值對一列進行排序?
- 8. 按順序對輸出進行編號
- 9. 根據另一列的級別對數據幀中的列進行排序
- 10. 如何根據同一個表中另一列的順序更新列中的所有值?
- 11. 要根據另一列中的日期對列中的值進行求和並對其進行分組
- 12. 如何根據行ID列表更改表中行的順序?
- 13. 如何根據該行另一列中的值,在asp.net中的listview行中的某些列中進行編輯?
- 14. Python如何根據另一個列表根據它們的屬性對對象列表進行排序
- 15. 根據另一個類中可用的參數對列表進行排序
- 16. 根據另一個陣列中定義的排序順序對陣列進行排序
- 17. 根據R中的另一個值進行行值組合
- 18. 根據同一行中的另一列值填充列的值
- 19. 根據另一陣列的順序
- 20. 對所有表列中的唯一值進行計數
- 21. 根據另一行另一列的值填充值爲空列
- 22. 根據字段按字母順序對散列進行排序
- 23. 根據內部表值對lua中的表進行排序
- 24. 如何根據子列表中的值對列表進行排序?
- 25. 根據Kohana中的另一個表的數據對mysql結果進行排序
- 26. 根據另一個列表定義的順序對列表排序
- 27. 如何根據另一個有序表格對錶格進行排序?
- 28. PHP - 根據另一個陣列對數組進行排序
- 29. 如何根據日期字段對所有列進行排序
- 30. 根據另一個陣列的排序對陣列進行排序
就可以開始編寫一個查詢,我們將幫助您解決問題和改進 – Ibu 2012-07-10 16:22:07
這樣做有什麼目的時,你可以放置一個'ORDER BY'在您的檢索報告中? – 2012-07-10 16:22:20
-1簡單計數(B),然後按順序排列。 – 2012-07-10 16:23:08