質問
いテーブルに"Date"をクリックしてください。それぞれ日が表示されます。どんなものだけを選択日に表示される < k数の時間は何時ですか?
解決
select dates
from table t
group by dates having count(dates) < k ;
思ードを動作させることができますので、ORACLE社HTH
他のヒント
SELECT * FROM [MyTable] WHERE [Date] IN
(
SELECT [Date]
FROM [MyTable]
GROUP By [Date]
HAVING COUNT(*) < @Max
)
見@[SQLMenace]'s応答もございますこのことによってデータベース氏に加え、速く走仮にバージョンのオプティマイザなの議論の余地がある問題.
軒の総数:
SELECT Date
FROM SomeTable
GROUP BY Date
HAVING COUNT(*) < @k
例
DECLARE @Max int
SELECT @Max = 5
SELECT t1.*
FROM [MyTable] t1
JOIN(
SELECT [Date]
FROM [MyTable]
GROUP By [Date]
HAVING COUNT(*) < @Max
) t2 on t1.[Date] = t2.[Date]
のために"と表示されたx"時代のクエリで使用を提供しています。このケースでは、クエリーできるように:
SELECT Date FROM table GROUP BY Date HAVING COUNT(*)<k
はるか選択する必要がありますその他のカラムを除く日
SELECT * FROM Table WHERE Date IN (
SELECT Date FROM table GROUP BY Date HAVING COUNT(*)<k)
でも書き換えの内参加しましたが、このだ性能として、実際には、クエリ-オプティマイザはこのとき多くのRDBMS.有インデックス日時は確かに性能向上のためにこのクエリ。
SELECT date, COUNT(date)
FROM table
GROUP BY date
HAVING COUNT(date) < k
そしてオリジナルのデータ:
SELECT table.*
FROM table
INNER JOIN (
SELECT date, COUNT(date)
FROM table
GROUP BY date
HAVING COUNT(date) < k) dates ON table.date = dates.date
仮に使用Oracle、k=5:-
select date_col,count(*)
from your_table
group by date_col
having count(*) < 5;
場合に日付の列が時間をお過ごしください。ても、無視したいので、変更のクエリで以下のような内容です。-
select trunc(date_col) as date_col,count(*)
from your_table
group by trunc(date_col)
having count(*) < 5;
できない場合がありまをカウントに直接datefieldの場合にあたります。ま変換する必要があるだけで年/月/日の形式で最初にカウントしました。
なおカウントがoffであ記録に順じます。
所属していません StackOverflow