[英]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.