簡體   English   中英

在此SQL語句中添加where子句

[英]Adding where clause to this SQL statement

我在本周早些時候問了一個問題,得到以下陳述作為答案:

select published, count(*) nbr
from table1
group by published
order by nbr desc
limit 1

現在,我想知道如何在語句中添加where子句,以便可以將結果限制在不同類型的出版物中。 我的桌子看起來像這樣:

  • ID
  • 類型
  • 標題
  • 已發表
  • where子句將在type列上,例如,其中type=3
    提前致謝
    院長

    是時候開始學習一些基本的SQL了,您不覺得嗎? :)

    http://dev.mysql.com/doc/refman/4.1/en/select.html

    SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO @var_name [, @var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]
    

    當然,只需在FROM語句之后和GROUP BY語句之前添加WHERE語句。

    select published, count(*) nbr    
    from table1
    where type = 3
    group by published
    order by nbr desc
    limit 1
    

    關於基本規則,請參見where子句在每一行上施加約束。 行級別約束首先創建一個進行分組的表。 因此,Group排在后面。 如果要使用組級別約束,則可以使用Haveing子句,但請記住一件事,可以將具有約束條件僅應用於組中常見的項目(在您的情況下為發布的項目)。

    如前所述,在您的情況下,Where子句將放在“ group by”之前,在“ from table1”之后

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM