从结果集中的子查询返回记录数

时间:2010-03-24 01:48:30

标签: sql mysql

我试图从子查询返回rowcount作为结果集的一部分。以下是我尝试过的不起作用的示例:

  

SELECT recordID
  ,GroupIdentifier
  ,计数()AS总计
  ,(SELECT COUNT(
)FROM表WHERE intActingAsBoolean = 1)AS Approved
  
  从表
  WHERE date_format(Datevalue,'%Y%m%d')BETWEEN'startDate'和'endDate'
  
  GROUP BY groupIdentifier

我试图为'Approved'返回的是分组值的记录数,其中intActingAsBoolean = 1.我还尝试通过给主查询提供表别名并应用AND子句来修改where子句。将子查询中的groupidentifier与主查询匹配。这些都没有返回正确的结果。写入的查询返回表中intActingAsBoolean = 1的所有记录。

此查询正在针对MySQL数据库运行。

2 个答案:

答案 0 :(得分:0)

如果没有子查询,这个hack怎么做:

SELECT
    recordID,
    GroupIdentifier,
    COUNT() AS total,
    SUM(intActingAsBoolean = 1) AS Approved 
FROM table
WHERE date_format(Datevalue, '%Y%m%d') BETWEEN 'startDate' AND 'endDate'
GROUP BY groupIdentifier

答案 1 :(得分:0)

这可能不是最好的方法,但您可以编写一个函数来返回您正在寻找的值。