ChatGPT vs Google Bard
GoogleのBardが日本でも使用できるようになったので、使ってみました。
ChatGPTはFree Planと比べみました。
Google Bardの使い方
- Bardのページを表示する
- Google Accountでログインした状態で、使用するをクリック
- 少し立つと使用許可のメールが届く
- BardのページでChatが使用できるようになる。
注意
- 日本でも使用できるが、日本語でははまだ使用できない。2023-04-19現在
- 個人アカウントでの登録が必要になる。
対決
検証内容として両方に、SQLを生成してみる。
問題
データベースに日付と金額のテーブルがあります。
指定した期間で期間で週ごとに合計を集計するSQLをを記述してください。
データがない週は0で出力したいです。なるべく短いSQLで記述してください。
日本語が対応していないのでどちらも英語で
There is a table of dates and amounts in the database.
Please write SQL to tally the totals by week for a period of time in a specified time period.
I want to output 0 for weeks with no data. Please write the SQL as short as possible.
回答
ChatGPT
SELECT DATE_TRUNC('week', calendar.week_start) AS week_start,
COALESCE(SUM(transaction_amount), 0) AS total_amount
FROM (SELECT generate_series(date_trunc('week', start_date)::date,
date_trunc('week', end_date)::date, '1 week') AS week_start
FROM (SELECT '2022-01-01'::date AS start_date, '2022-12-31'::date AS end_date) t) calendar
LEFT JOIN transactions ON DATE_TRUNC('week', transaction_date) = calendar.week_start
GROUP BY week_start
ORDER BY week_start ASC;
- よく出来た回答だと思います。
-
なるべく短いSQLで記述してください。も、きちんと理解してくれています。いろいろと関数を使用しています。 -
データがない週は0で出力したいです。も、きちんと対応しており、データがない集計部分を生成するようにSQLを記述しています。 - 本当にこれが動くのか試していません。
Bard
SELECT
DATEADD(WEEK, DATEDIFF(WEEK, 0, date), 0) AS week_of,
SUM(amount) AS total
FROM
(
SELECT
date,
amount
FROM
table_name
WHERE
date >= '2023-04-01'
AND date < '2023-04-19'
) AS subquery
GROUP BY
week_of
ORDER BY
week_of;
-
なるべく短いSQLで記述してください。、データがない週は0で出力したいです。もあまり読み取ってくれなかった。 - わかりやすいSQLを生成しています。
結果判定
- SQLの生成の差は、現在、明らかな差があります。人間でいうと上級者と初級、中級?
- Bardの良いところは、表示速度が早いところです。すこし、考えてすぐ結果が表示されます。
- Bardが突貫工事で作られたと思うと、よく頑張っているとも思うが、今後を期待したいところ。
今後
- データベースを指定して比較しても良かったと思う。
- 質問も適当な指示なので、もっと詳細にしていしたら、出力も変わるかも。