mysql實戰--MYSQL中的SQL分組方法
在mysql中沒有提供分組統計函式,但mysql中變數使用非常靈活,在sql中可以靈活使用變數,這給mysql實現分組的方式帶來很大方便,因此在
mysql實現一個分組統計的功能也並不難以實現,且理解起來還比較容易,比如我們提供一下的資料,用來描述,查詢出的關鍵詞的詞頻數,然後根據關鍵詞的
型別,分組統計組內詞頻出現次數最後的前三挑資料
CREATE TABLE `policy_keywords_rel` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`content_id` int(11) NOT NULL COMMENT '文章id',
`keyword_id` int(11) NOT NULL COMMENT '關鍵詞id',
`cnt` int(11) NOT NULL COMMENT '關鍵詞頻次',
`n` varchar(10) DEFAULT NULL,
`keyword` varchar(90) DEFAULT NULL COMMENT '關鍵詞名稱',
PRIMARY KEY (`content_id`,`keyword_id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (3,1,68860,3,'te','智慧財產權');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (13,1,49258,5,'n','科技創新');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (1,1,44177,19,'te','技術');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (4,1,42982,3,'te','行業標準');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (10,1,7405,6,'n','市政府');
select * from policy_keywords_rel
從如下sql中可以查詢出,組內詞頻資料排名,且相同詞頻的資料排名相同
SELECT
T2.*
FROM
(
SELECT
T.*
,CASE
WHEN @MID = N and @TEMP_SCNT != SCNT THEN @ROW := @ROW + 1
WHEN @MID = N and @TEMP_SCNT = SCNT THEN @ROW := @ROW
ELSE @ROW := 1
END ROWNUM
,@MID := N MID
,@TEMP_SCNT := SCNT
FROM
(
SELECT
KEYWORD_ID,
KEYWORD,
SUM( CNT ) as SCNT,
N
FROM
POLICY_KEYWORDS_REL
GROUP BY
KEYWORD_ID,
N
ORDER BY
N,
SUM( CNT ) DESC
) AS T
) AS T2
WHERE
T2.ROWNUM <= 3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750077/viewspace-2145567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 分組排序的sql寫法MySql排序
- MySQL實現分組排序MySql排序
- mysql sql 中實戰小技巧持續更新MySql
- MySQL的Group By分組MySql
- 一句話實現MySQL庫中的重疊分組MySql
- mysql使用group by實現組內排序實戰MySql排序
- MySQL實戰 | 06/07 簡單說說MySQL中的鎖MySql
- 一句話實現MySQL庫中的按連續等值分組MySql
- [MYSQL -13]過濾分組MySql
- mysql與oracle的分組函式MySqlOracle函式
- Mysql 分頁效率不同的SQLMySql
- 一句話實現MySQL庫中的有序列舉條件分組MySql
- mysql讀寫分離實戰準備一MySql
- MySQL調優篇 | SQL調優實戰(5)MySql
- Sql字串分組Split函式的兩種實現方法SQL字串函式
- 《MySQL實戰45講》學習筆記4——MySQL中InnoDB的索引MySql筆記索引
- MySQL中鎖的分類MySql
- mysql group_concat 實現把分組欄位寫成一行的方法MySql
- SQL實現分組limitSQLMIT
- MySQL資料庫中SQL語句分幾類?MySql資料庫
- MySQL 分組後取最新記錄MySql
- Oracle和MySQL分組查詢GROUP BYOracleMySql
- PHP + MySQL 無限分類實現的2種方法PHPMySql
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- mysql 求分組中位數、環比、同比、中位數的環比、同比MySql
- mysql 分組取每個組的前幾名的問題MySql
- 優化MySQL中的分頁優化MySql
- 優化 MySQL 中的分頁優化MySql
- mysql中SQL的概念介紹MySql
- 配置SQL Developer連線MySQL的方法DeveloperMySql
- 幾個MySQL在Python中操作示例,MySQL利用於Python的實戰!MySqlPython
- 遊戲陪玩app開發中,Mysql的sql優化方法遊戲APPMySql優化
- MySQL MHA部署實戰MySql
- MySQL 進階實戰MySql
- 實戰!聊聊如何解決MySQL深分頁問題MySql
- 【實驗】【MySQL】MySQL中的運算子展示MySql
- SQL分組SQL
- MySQL學習記錄--分組與聚集MySql