1

在 MySQL 中,我需要获取由某些列聚合的行数。这是子查询的一部分,所以我需要查询自己返回结果。

在此示例查询中:

mysql> select count(*) from data_cst where target_name_id=208082 and
wafer_id=425845 group by target_name_id,wafer_id,lot_id,data_file_id;

+----------+
| count(*) |
+----------+
|       12 |
|       12 |
|       12 |
|       12 |
+----------+
4 rows in set (0.00 sec)

我需要的结果是 4(即有 4 个不同的 target_name_id、wafer_id、lot_id、data_file_id 组)。我怎么能得到那个?

为了清楚起见,这将是一个子查询,所以事后我不能使用 mysql_num_rows() 或 FOUND_ROWS() 。我需要从查询返回的结果。

4

2 回答 2

1
select count(distinct lot_id,data_file_id) 
  from data_cst 
 where target_name_id=208082 
   and wafer_id=425845;
于 2012-08-23T17:29:11.600 回答
0

使用嵌套查询。

SELECT
  COUNT(*)
FROM
(
  select count(*) AS cnt from data_cst
  where target_name_id=208082 and wafer_id=425845
  group by target_name_id,wafer_id,lot_id,data_file_id
)
  AS data;
于 2012-08-23T17:25:11.340 回答