- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:行のカウントを2種類を1つの文で発行したい)
行のカウントを2種類を1つの文で発行したい
このQ&Aのポイント
- idが1である全商品数と今月登録された商品の数を出力するために、2つのSQLを1つの文にまとめる方法について教えてください。
- 商品が登録されているテーブルAにはid、name、dtの3つのカラムがあります。idには固有の番号が、nameには商品名が、dtには登録日付が入っています。今回の目的は、idが1である全商品数と今月登録された商品の数を1つのSQL文で取得することです。
- 詳細な条件を満たすSQL文として、idが1である全商品数と今月登録された商品の数を1つのクエリで取得する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じですかね? //データ作成 create table tbl(id int,name varchar(10),dt datetime); insert into tbl values(1,'a','2014-04-01 08:00:00'),(1,'b','2014-04-02 08:00:00'),(1,'c','2014-04-03 08:00:00'),(1,'d','2014-05-01 08:00:00'),(2,'e','2014-04-04 08:00:00'),(2,'f','2014-05-02 08:00:00'); →idが1のデータは4つ、内3つのデータが2014年4月の日付 //集計・・・今日が2014年4月である前提でnow()を利用 select count(*) as c1 ,sum(dt between (@d:=date_format(now(),'%Y-%m-01 00:00:00')) and (@d+interval 1 month -interval 1 second)) as c2 from tbl where id=1; ※条件式をsumで集計すると件数がとれます (@d:=date_format(now(),'%Y-%m-01 00:00:00')) というのが、今月1日の、0時0分0秒で '2014-04-01 00:00:00' (@d+interval 1 month -interval 1 second)) というのが、今月1日の1ヶ月後の1秒前で'2014-04-30 23:59:59'
お礼
こんにちは。 ご回答ありがとうございます。 フムフム… 条件式をsumで集計…!!! なるほどーなるほどーです、こういう風に使うんですね! こんな考え方ができちゃうなんてすごいですー^^@ ありがとうございます。 ひとつ賢くなれました!!!