私は以下のデータを持つテーブルを持っています。私にIDと接続日数を与えるクエリを書いて欲しいです。あなただけstartdate
列に基づいて、日をチェックしている場合は、id 1は私に2回(2016年9月20日、2016年9月22日)この例の質問を書く
-2
A
答えて
1
SELECT id, COUNT(DISTINCT convert(date, startTime)) as noOfDays
FROM your_table
GROUP BY id
0
を与えるために例えば
以下のクエリを使用します。
SELECT COUNT(DISTINCT cast (StartTime as date)) DaysCount
FROM YourTable
Where ID=1
0
質問は非常に明確ではないですが、あなたは、単にこの
Select id,TotalCount=Count(id) from YourTable group by id
0
アルのように行うことができますが、私はあなたが考慮複数の接続を考慮して、すべてのIDの接続日間の合計数を取得しようとしていると思います(すべて1つの接続としてカウントされます)。また、接続はEndTimeに応じて数日に及ぶこともあります。この場合、これらの日数も同様にカウントする必要があります。注
declare @tt table(id int, StartTime datetime, EndTime datetime)
insert into @tt values
(1, '2016-09-20 13:01', '2016-09-20 13:30')
,(1, '2016-09-20 14:20', '2016-09-20 16:09')
,(1, '2016-09-20 17:20', '2016-09-20 17:51')
,(1, '2016-09-22 23:20', '2016-09-22 23:40')
,(2, '2016-09-20 14:20', '2016-09-20 16:09')
,(2, '2016-09-20 16:01', '2016-09-20 16:09')
,(3, '2016-09-20 14:20', '2016-09-20 14:56')
,(3, '2016-09-23 19:20', '2016-09-23 20:09')
,(4, '2016-09-20 22:20', '2016-09-20 23:00')
select * from @tt
;with cte1 as
(
select ID, convert(Date, StartTime) as StartDate
, convert(Date, max(EndTime)) as EndDate
from @tt
group by id, convert(Date, StartTime)
),
cte2 as
(
select *, DATEDIFF(day, StartDate, EndDate) +1 as DaysCount
from cte1
)
select id, sum(DaysCount) as DaysCount
from cte2
group by id
0
select id,count(distinct(dbo.GetDateInt(StartTime))) NoofDays from table_name group by id
:SQLサーバー2012とgetDateInt()
で行われ、このクエリはデータベース機能である
はこれを試してみてください。それは2016-09-23のような日付だけを返します。
関連する問題
- 1. 質問を書く方法xquery?
- 2. 質問を書くのに助けが必要です
- 3. 参照タイプの例の質問
- 4. knockoutjs 'カートエディタ'の例題の質問
- 5. のJavaMailは、この質問は、次の質問に関連している例外
- 6. MSDNの例に関する質問
- 7. ケラスについての質問例pretrained_word_embeddings
- 8. 例外についてのご質問
- 9. この質問は私の前の質問に依存
- 10. .htaccess書き換え質問
- 11. Mod書き換え質問
- 12. 質問のこのセクションをやり直してください
- 13. この質問ではHashedWheelTimer
- 14. この質問が参照
- 15. これは、この質問へのフォローアップの質問であるかのdiv
- 16. Prologの質問の質問
- 17. 各子供の個別の質問を取り除くことの問題
- 18. perl印刷書式設定の質問
- 19. NHibernateの質問 - 流暢NHibernateのために、この例を修正
- 20. Windows 7に質問する - デフォルトでこのファイルを開くプログラム
- 21. バッチ:この質問はこの質問に関連しているファイルパス
- 22. WPFは、ここで質問
- 23. 質問の質問Django
- 24. C# - asp.net - このコーディングに関するいくつかの質問
- 25. 質問の送信者の名前を書くことによってコストの降順を取得します。
- 26. レビューウェブをこする質問
- 27. は、私がインタビューでこの質問に出くわした
- 28. よくある質問FILTER_VALIDATE_EMAILに関するこの問題の解決方法
- 29. PDO例外質問 - キャッチする方法
- 30. いくつかのMongoDBの質問
あなたが聞いたことははっきりしません。日数や日数が必要ですか?最後の行のEndTimeが9月25日だったら?ところで、あなたがこれまでに試したことを示す必要があります、StackOverflowは宿題のソルバーの場所ではありません。 http://stackoverflow.com/help/how-to-ask – Andrew
サンプルテーブルのデータを画像として投稿しないでください。また、StartTimeが2016-09-20、EndTime 2016-09の場合はid = 1 -20の場合、1または2と数えますか? – Wanderer