私は、Postgresの中に約14,000行のテーブルを持っています。私は何年にも存在するが、他のものには存在しない価値に気づいています。今、私は2017年、2016年、2015年、2014年などのこれらの特定の列の値を数えます。私は、自分自身が2016年と2017年にのみ価値を選択することを容易にしたいが、それ以外の年には価値を選択したくない。すべての年に表示されない値を見つけるにはどうすればよいですか?
例:タイプと説明として「13HAZ02」、「ハウスキーピング」が2016年と2017年に見つかりました。
これは私が期待してい方法です:
select type, descr, count(*) as count
from (
select *
from table
where date >= '2016-01-01' and date <= '2016-12-31'
) as a
group by type, descr
order by count desc
私はどこを追加しているではないが、私はそれを正しく使用していませんよ。私はこのエラーを受け取ります:日時フィールドの値が範囲外です。
select type, descr, count(*) as count
from (
select *
from table
where date >= '2016-01-01' and date <= '2016-12-31'
) as a
where not date > '2015-12-31'
group by type, descr
order by count desc
多分私はそれを複雑にしているので、本当に助言をいただきたいと思います。
あなたの質問の要件は、あなたがあなたのクエリに持っているものと異なっています。あなたは2016年と2017年だけで、あなたのフィルターは2007年までの値を見たいと言っていますか?本当に混乱しています。サンプルデータを追加し、サンプルから希望する結果がどのようなものかを検討してください。 –
@JorgeCampos Jorgeさん、ありがとうございました。私はまだ2007年を探していましたが、私はデータと望ましい結果のサンプルを追加します。 – Dave