成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

mysql - 查詢數據庫某個字段不重復的值,按時間排序,如何寫呢?

瀏覽:137日期:2022-06-11 11:22:35

問題描述

文章模型如下

class Article(models.Model):

title = models.CharField(max_length=150, verbose_name=’文章標題’, unique=True)content = models.TextField(verbose_name=’文章內容’)describe = models.CharField(max_length=500, verbose_name=’文章描述’, blank=True, null=True)date_publish = models.DateTimeField(auto_now_add=True, verbose_name='發布時間')click_count = models.PositiveIntegerField(verbose_name=’點擊次數’, blank=True, null=True, default=0)keywords = models.ForeignKey(Keywords, blank=True, null=True, verbose_name=’關鍵詞’) class Meta: verbose_name = ’文章’ verbose_name_plural = verbose_name ordering = [’-date_publish’]def __str__(self): return self.title

查詢:若外鍵字段“keywords”下有多條數據,只取1條,多條數據按click_count取點擊數最大的,再得到標題/內容/描述的值,輸出到網頁模板上。

想用一個查詢語法完成,請問如何寫呢

問題解答

回答1:

關鍵字mysql分析函數(開窗函數),由于mysql不支持max over只能寫成如下:

SELECT tt.*FROM table tt INNER JOIN (SELECTkeyword,max(click_count) maxcount FROM table GROUP BY keyword) groupedtt ON tt.keyword = groupedtt.keyword AND tt.click_count = groupedtt.maxcountORDER BY tt.create_time

相關文章: