私はこのコードについて調べました:
select *,
year(curdate())-year(dbirth) - (right(curdate(),5) < right(dbirth,5)) as age
from resident_info
having age = 18;
しかし、私が欲しかったのは、すでに18個の情報をすべて取得した後でそれらを数えたかったことです。2つのクエリを同時に入力する方法や、問題の解決策はありますか?どうもありがとう
私が何かを見逃していない限り、これらが必要な場合はcount
、次を使用できます。
select count(*)
from
(
select *,
year(curdate())-year(dbirth) - (right(curdate(),5) < right(dbirth,5)) as age
from resident_info
having age = 18
) src
resident_info
とからすべてのデータを返したい場合は、 :count
を使用できます。CROSS JOIN
select *,
year(curdate())-year(dbirth) - (right(curdate(),5) < right(dbirth,5)) as age,
src.Total
from resident_info
cross join
(
select count(*) Total
from
(
select year(curdate())-year(dbirth) - (right(curdate(),5) < right(dbirth,5)) as age
from resident_info
having age = 18
) x
) src
having age = 18
これは役立つかもしれません。
select temp.*,
year(curdate())-year(dbirth) - (right(curdate(),5) < right(dbirth,5)) as age
FROM resident_info AS temp
WHERE age = 18;