1

MySQLでは、いくつかの列によって集計された行の数を取得する必要があります。これはサブクエリの一部であるため、クエリiselfによって返される結果が必要です。

この例のクエリでは:

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です(つまり、target_name_id、wafer_id、lot_id、data_file_idの4つの異なるグループがありました)。どうすればそれを取得できますか?

明確にするために、これはサブクエリになるため、事後に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 に答える