[ad_1]
I have written the queries but i would like to know the better way of optimizing it using groupby Outpatient ID TreatedFor BillAmount VisitStartDate VisitEndDate 1 General Treatment 5000 2023-04-17 8:55:10 2023-04-18 8:55:10 2 Head Injury 10000 2023-03-10 8:55:10 2023-03-15 8:55:10 3 Fever 15000 2023-03-22 8:55:10 2023-03-23 8:55:10 4 Casual 3000 2023-03-27 8:55:10 2023-03-27 8:55:10 Inpatient ID TreatedFor BillAmount AdmittedOn DischargedOn 1 General Treatment 3000 2023-04-12 8:55:10 2023-04-18 8:55:10 2 Head Injury 30000 2023-03-09 8:55:10 2023-03-17 8:55:10 3 Fever 40000 2023-03-12 8:55:10 2023-03-24 8:55:10 4 Surgery 70000 2023-03-25 8:55:10 2023-03-24 8:55:10 FollowUpCalls ID TreatedFor Visits FollowUps Date 1 General Treatment 1 2023-04-12 8:55:10 2023-04-18 8:55:10 2 Head Injury 0 2023-03-09 8:55:10 2023-03-17 8:55:10 3 Fever 1 2023-03-12 8:55:10 2023-03-24 8:55:10 4 Surgery 1 2023-03-25 8:55:10 2023-03-24 8:55:10
私が試したこと:
select(select sum(BillAmount)from Outpatientwhere VisitStartDate >= '2023-03-01'and VisitEndDate <'2023-03-31') as OPBill,(select sum(BillAmount)from Inpatientwhere AdmittedOn >= '2023-03-01'and DischargedOn < '2023-03-31') as IPBill(select COUNT()from FollowUpCallswhere [Date] IS NOT NULLand Visitsbetween '2023-03-01' and '2023-03-31') as Fvisits(select COUNT()from FollowUpCallswhere [Date] IS NOT NULLand FollowUpsbetween '2023-03-01' and '2023-03-31'and (Visits = 1 AND [Date] IS NOT NULL) as FCalls)
I have written the queries but i would like to know the better way of optimizing it using groupby Expecting the data to be with group by patient Id OPBill IPBill Fvisits FCalls
解決策 1
実際にどのようなデータが得られると予想されるかがわからない場合、最適化に関する具体的なアドバイスはできませんが、次の 2 つのことが発生します。
1) クエリをフォーマットします。 長い 1 行のテキストは簡単には解決できません。複数行に分割すると、読みやすくなり、メンテナンスしやすくなります。また、まとめてまとめなかった人にとってもより良いものになります。
2) 推測では、おそらく次のことから始める必要があります。 SQL 結合[^] 同様に(または代わりに) SQL GROUP BY[^]
まず、サンプル データを取得し、何を生成するか、出力の各要素をどこから取得するかを決定します。 次に、複数のサブクエリの代わりに JOINing と GROUPing を見てください。
[ad_2]
コメント