2017-07-14 5 views
-3

私は、ユーザーID、ユーザー名、注文ID、注文のタイムスタンプをすべてのユーザーの注文を記録する注文表がある食品販売のWebサイトを持っています。注文の最大数を知りたい任意の1時間のスパンを介してday.Give私にこれのための任意のアルゴリズム、またはこれらの任意のSQLクエリを与える。データベースから1時間以内に発生する注文数の最大数を調べるには?

+1

あなたが試したコードを共有できますか? –

+1

SQLにはさまざまな "味"があります。使用しているDBMSにタグを付けてください。 – JohnHC

+0

私はmysqlを使用しています –

答えて

1

SQLサーバー:

with CTE as 
(
select cast(t1.timestamp as date) as o_date, datepart(hh, t1.timestamp) as o_hour, count(*) as orders 
from MyTable t1 
group by cast(t1.timestamp as date), datepart(hh, t1.timestamp) 
) 
select o_date, o_hour, orders 
from CTE 
where orders = (select max(orders) from CTE) 

オラクル

with CTE as 
(
select to_char(t1.timestamp, 'YYYYMMDD') as o_date, to_char(t1.timestamp, 'HH24') as o_hour, count(*) 
from MyTable t1 
group by to_char(t1.timestamp, 'YYYYMMDD'), to_char(t1.timestamp, 'HH24') 
) 
select o_date, o_hour, orders 
from CTE 
where orders = (select max(orders) from CTE) 
0

あなたはMySQLの

0の場合はSQL

SELECT TOP 1 
    COUNT(*) 
FROM myTable 
GROUP BY DATEPART(day, [column_date]), DATEPART(hour, [column_date]) 
ORDER BY COUNT(*) DESC; 

についてこの

のような日や時間によってカウント得ることができます

SELECT 
    COUNT(*) 
FROM myTable 
GROUP BY HOUR(column_date), DAY(column_date) 
ORDER BY COUNT(*) DESC 
LIMIT 1; 
+0

これはどのdbmsですか? (これはANSI SQLではなく、質問にはdbmsがspocifiedされていません) – jarlh

+0

私はanswer @ jarlhを編集しました –