簡體   English   中英

獲取具有特定條件的行數

[英]To get count of a row with particular condition

我想獲取表中存在的一行的計數。

+---+----+
|id |name|
+---+----+
|100|a   |
+---+----+
|201|b   |
+---+----+
|302|c   |
+---+----+
|403|d   |
+---+----+
|504|e   |
+---+----+

在上表中,我希望輸出為4(即,該行的計數)。 我有'd'值,必須編寫查詢以將輸出獲取為4 ,其中name = d

我認為代碼將如下所示,

select count(*) ......
SELECT ROW_NUMBER() OVER(ORDER BY id) FROM yourtable WHERE name='d'

MySQL版本

SET @rank=0;
SELECT   @rank := @rank+1 AS rank
FROM     yourtable WHERE name='d'
ORDER BY id asc

獲取行號

SELECT ROW_NUMBER() OVER(ORDER BY id) from table WHERE name='d'

要獲取符合您條件的行數,請使用以下查詢

select count(*) as count from table where name = 'b'

如果我正確理解您的要求,那么此查詢就是您想要的:

set @row_number = 0; 
select @row_number := @row_number + 1 as row_number,name FROM table_name;

@vinoth我認為@Pragmatist答案將為您工作。 只需將此子句添加到他的查詢中:

set @row_number = 0; 
select @row_number := @row_number + 1 as row_number,name FROM table_name Where name='b';

請嘗試以下。 MS SQL是一個經過測試的查詢,我剛剛轉換為mysql。 希望您可以根據需要進行修改。

    SET @rank=0;
    SELECT * FROM Table1 T1
    INNER JOIN(
           SELECT   @rank := @rank+1 AS rank, ID
           FROM     Table1
           ORDER BY id asc) temp ON temp.ID = T1.ID
    WHERE T1.name = 'd' 

MS SQL查詢將

SELECT * FROM Table1 T1
INNER JOIN(SELECT id, ROW_NUMBER() OVER (Order by id) AS RowNumber from Table1) temp ON   temp.ID = T1.ID
WHERE T1.name = 'd' 

暫無
暫無

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

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