我有一个产品表,其中包含大约2000种服装产品,每种产品都有grpIdent
字段和productGroup
字段。
当我运行以下查询时:
select count(1)
from tblclothingitems ci
where productGroup='hel'
group by productGroup, grpIdent
根据SQL Yog,我得到了99行的结果集,其中包含与每个组的行数有关的不同值。但我想返回数字99,给出返回的行数。
是否有人知道如何实现这一目标?
答案 0 :(得分:2)
SELECT COUNT(*) FROM ([Your Query])
将返回查询返回的行数。
答案 1 :(得分:2)
select **@@Rowcount** as myResultRowsCount
from tblclothingitems ci
where productGroup='hel'
group by productGroup, grpIdent
答案 2 :(得分: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
答案 3 :(得分:0)
使用MySQL“SQL_CALC_FOUND_ROWS”的内置函数,其工作方式如下,使用上面的示例查询;
select SQL_CALC_FOUND_ROWS count(1) from tblclothingitems ci where productGroup='hel' group by productGroup, grpIdent
然后发出第二个MySQL命令;
SELECT FOUND_ROWS();
在软件中使用该结果 - 您可以在许多方面使用它,例如更新数据,或者使用“LIMIT”子句来限制返回到应用程序的行数。
SQL_CALC_FOUND_ROWS告诉MySQL计算忽略“LIMIT”子句的行数,这允许你做类似的事情。
SELECT SQL_CALC_FOUND_ROWS * FROM `myTable` WHERE `title` LIKE "%blah%" LIMIT 100,10;
从第100行开始提取10行,然后;
SELECT FOUND_ROWS();
在整个表的title
字段中,您会告诉您“blah”有多少行,然后您可以将此信息显示为“显示总共12345行中的10行”
答案 4 :(得分:0)
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';