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 sql 中實戰小技巧持續更新MySql
- MySQL實現分組排序MySql排序
- MYSQL——分組MySql
- 一句話實現MySQL庫中的重疊分組MySql
- mysql使用group by實現組內排序實戰MySql排序
- MySQL調優篇 | SQL調優實戰(5)MySql
- MySQL實戰 | 06/07 簡單說說MySQL中的鎖MySql
- MySQL資料庫中的分組函式ROLLUPMySql資料庫函式
- 一句話實現MySQL庫中的按連續等值分組MySql
- MySQL資料庫中SQL語句分幾類?MySql資料庫
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- mysql中SQL的概念介紹MySql
- mysql group_concat 實現把分組欄位寫成一行的方法MySql
- 幾個MySQL在Python中操作示例,MySQL利用於Python的實戰!MySqlPython
- 《MySQL實戰45講》學習筆記4——MySQL中InnoDB的索引MySql筆記索引
- Kubernetes 中實現 MySQL 的讀寫分離MySql
- 一句話實現MySQL庫中的有序列舉條件分組MySql
- MySQL中鎖的分類MySql
- mysql中substring_index類似split分組功能MySqlIndex
- 探究MySQL中SQL查詢的成本MySql
- 遊戲陪玩app開發中,Mysql的sql優化方法遊戲APPMySql優化
- Flink 1.9 實戰:使用 SQL 讀取 Kafka 並寫入 MySQLKafkaMySql
- mysql SQL Layer各個模組介紹MySql
- [Mysql]SQLMySql
- MySQL 進階實戰MySql
- MySQL MHA部署實戰MySql
- 實戰!聊聊如何解決MySQL深分頁問題MySql
- MySQL 分組後取最新記錄MySql
- day40:MySQL:python操作mysql:pymysql模組&SQL隱碼攻擊MySqlPython
- 【MYSQL】Mysql常用檢查sqlMySql
- mysql 分組取每個組的前幾名的問題MySql
- mysql 求分組中位數、環比、同比、中位數的環比、同比MySql
- 3.1 MYSQL分庫分表實踐MySql
- MySQL——索引優化實戰MySql索引優化
- python實戰GUI介面+mysqlPythonGUIMySql
- MySQL中union和order by同時使用的實現方法MySql
- MySQL SQL模式MySql模式
- mysql 常用sqlMySql