iT邦幫忙

0

[SQL]去重複,但也查詢count(*)

  • 分享至 

  • xImage

各位前輩
小弟我要開發熱門關鍵字的後台管理系統
目前已有一張表名為webkeyword,
用來記錄搜尋列的查詢關鍵字
主要是記錄uuid,keyword,create_date,last_update_date,等資料。
然後我後台想新增一張表,這張表結構大致跟前台一樣,不過我會加入排行,軟刪除,分辨是使用者還是後台新增的來源,搜尋次數
所以後台資料表 webkeyword_admin
會有
uuid,keyword,create_date,last_update_date,id_display,rank,source,search_num

現在遇到一個問題
請問有沒有人試過使用去重distinct後接count(*)的查詢字串…
我想把前台的資料表整理過後join到後台資料表
因為後台顯示需要去重的資料,以及被查詢出的次數
有點不知道怎麼整理過去比較好…
所以上來求助~火車上手機排版沒有圖片抱歉><

包在子查詢裡
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
deh
iT邦研究生 1 級 ‧ 2021-09-26 20:39:33

一開始沒看懂,現在也不是很明白

webkeyword_admin應該只要
uuid當foreign key,跟需要的新欄位id_display,rank,source,search_num這樣就好了吧?

新欄位的資料跟前台webkeyword沒關係吧?之後再塞進去就是了。

哦,與同事討論主要是想由另一張表來去顯示後台資料,再經由程式每日更新排程把新資料insert過去,所以一樣保留舊表的結構,但這可能會有增刪改上可能會有不同步問題
但聽你這麼說應該也是可以,一樣靠舊表join過去
但現在還是不知道怎麼去重複並count過去

deh iT邦研究生 1 級 ‧ 2021-09-26 21:41:55 檢舉

如果是說webkeyword要去除重複的話,group by uuid以外的欄位就行了。
如果webkeyword_admin還需要webkeyword裡面重複的資料數(count),那就給該欄位webkeyword內where"uuid以外的欄位"的count。

0
firecold
iT邦新手 1 級 ‧ 2021-09-27 11:06:18
SELECT keywords.keyword, count(*) as '使用次數'
FROM keywords
LEFT JOIN keywords_log 
ON keywords.keyword=keywords_log.keyword
GROUP BY  keywords.keyword

keywords是後台表
keywords_log是前台表

但其實這作法不好...
你都要獨立後台表了,累積次數在新增紀錄(前台表新增)的時候直接更新累加就好,
不要到最後在用count在算

我要發表回答

立即登入回答