人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

date name
---- ----------
1/1 深田恭子
2/1 長谷川京子
3/1 伊東美咲
3/2 長谷川京子
3/3 松下奈緒
3/4 伊東美咲

3月1日以降に、初めて登場した人は何人か?
を求めるSQLを書ける方、先着1名様、100pt贈呈します。
結果は’2’ (伊東美咲と松下奈緒の2名。長谷川京子は3月1日以前にも登場しているのでカウントから除外)

下記2本、いずれもダメでした。
SELECT COUNT(`name`) FROM table WHERE NOT EXISTS (SELECT `name` FROM table WHERE `date` < ’2005-03-01’);

SELECT COUNT(`name`) FROM table WHERE `name` NOT IN (SELECT `name` FROM table WHERE `date` < ’2005-03-01’);

●質問者: radio3
●カテゴリ:コンピュータ
✍キーワード:2005-03-01 3/3 3月1日 name SELECT
○ 状態 :終了
└ 回答数 : 9/9件

▽最新の回答へ

1 ● nekonabe
●15ポイント

http://www.goo.ne.jp/

goo

URLはダミーです。


DBが分からないのでORACLE版ですが…

select count(distinct name) from table a

where not exists (select ’X’ from table b where date < ’2005/03/01’ and a.name = b.name)

◎質問者からの返答

やっと閲覧できました。

DBはMySQLですが、汎用的には無理なんですかね... いかにもありそうなパターンだと思ってました。

結果、エラーでした。

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ’exists (select ’X’ ...

ありがとうございました。


2 ● kazz7
●20ポイント

http://www.hatena.ne.jp/1126596476

人力検索はてな - date name ---- ---------- 1/1 深田恭子 2/1 長谷川京子 3/1 伊東美咲 3/2 長谷川京子 3/3 松下奈緒 3/4 伊東美咲 3月1日以降に、初めて登場した人は何人か? を求めるSQL..

select count(*)

from (select min(date) min_date, name

from table

group by name) tmp_tbl

where tmp_tbl.min_date > to_date(’2005-03-01’, ’YYYY-MM-DD’) ;

;


このSQL文で求められると思います。

◎質問者からの返答

申し訳ありませんが、エラーでした。

MySQL server version for the right syntax to use near ’select min(`date`) min_date, ...

phpMyAdminのSQL照会だからでしょうか...?

ありがとうございます。


3 ● rhosoi
●15ポイント

http://www.hatena.ne.jp/

はてな

SELECT COUNT(DISTINCT ’name’) FROM table WHERE ’name’ NOT IN (SELECT DISTINCT ’name’ FROM table WHERE ’date’ < ’2005-03-01’;


DISTINCTのCOUNTが出来ない処理系だと駄目なので、そーいう場合はDISTINCT ’name’のレコード数を使えばいいかと


4 ● きゃづみぃ
●15ポイント

http://www.hatena.ne.jp/awindow?

select sum(1) - (select sum(1) from(

SELECT sum(1)

FROM tabl a

WHERE (((a.date)<#3/1/2005#)) group by a.name ))

from ( SELECT sum(1)

FROM tabl b group by b.name )


どのSQLかかかれてなかったので、 とりあえず ACCESSで 確認しました。


tableは tabl としてあります。

◎質問者からの返答

皆さんありがとうございます。

MySQLというかphpMyAdminがダメなんですかね...?


5 ● mj99
●0ポイント

http://www.google.co.jp/

Google

SELECT count(distinct `name`) FROM table WHERE `date` >= ’2005-03-01’


distinctで重複除外できます。

あと、不等号違いますね。

◎質問者からの返答

結果3で不正解


1-5件表示/9件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ