1

我有一张产品表,其中包含大约 2000 种服装产品,每个产品都有一个grpIdent字段和一个productGroup字段。

当我运行以下查询时:

select count(1) 
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent

根据 SQL Yog,我得到一个 99 行的结果集,其中包含与每个组的行数有关的不同值。但我想返回数字 99,给出返回的行数。

请问有人对我如何实现这一点有想法吗?

4

5 回答 5

2
SELECT COUNT(*) FROM ([Your Query])

将从您的查询返回的行数返回。

于 2010-06-24T14:57:21.530 回答
2
select **@@Rowcount** as myResultRowsCount
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent
于 2012-05-23T14:40:45.120 回答
1
select productGroup, grpIdent, count(*) 
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent;

将返回不同 grpIdent 值的计数。

第 1 点。您可以嵌套表格并选择 count(*) 来计算行数。

第 2 点。以下是值基数的首选查询。

select count (distinct grpIdent) 
from tblclothingitems ci 
where productGroup='hel'; 
于 2014-02-15T03:46:40.270 回答
0

使用上面的示例查询,使用 MySQL“SQL_CALC_FOUND_ROWS”的内置函数,其工作方式如下;

选择 SQL_CALC_FOUND_ROWS 计数 (1)
来自 tblclothingitems ci
其中 productGroup='hel'
按产品组、grpIdent 分组

然后发出第二个 MySQL 命令;

选择 FOUND_ROWS();

并在您的软件中使用该结果 - 您可以在许多领域使用它,例如更新数据,或者您使用“LIMIT”子句来限制返回给您的应用程序的行数。

SQL_CALC_FOUND_ROWS 告诉 MySQL 计算忽略“LIMIT”子句的行数,它允许你做类似的事情。

选择 SQL_CALC_FOUND_ROWS *
来自“我的表”
WHERE `title` LIKE "%blah%"
限制 100,10;

从第 100 行开始提取 10 行,然后;

选择 FOUND_ROWS();

这将告诉您整个表的字段中有多少行带有“blah”,title然后您可以将此信息显示为“显示 12345 中的 10 行”

于 2010-06-24T16:28:02.890 回答
0

如果你想要一个值,你必须选择一个变量。
像这样:

DECLARE @Count INT;
select @Count = count(1) from tblclothingitems ci where productGroup='hel' group by productGroup, grpIdent
RETURN @Count

编辑:
似乎我把你的问题弄错了。如果我现在理解它,您可以使用:SELECT COUNT(DISTINCT productgroup) FROM tblclothingitems

于 2010-06-24T14:57:15.820 回答