0

すべて - 基本的な (理論上) オンタイム完了レポートを作成しようとしています。assigned_to_id | を一覧表示したいのですが。オンタイム率 (パーセント - ただし、これは今は重要ではありません)

私は MySQL にすべてのタスクの数と期日より前の日付に終了とマークされたすべてのタスクのリストを取得するように指示し、その数を教えてくれると思います...簡単に見えますか?

私はシステム管理者です - SQL 開発者ではありません。

私が持っている

select issues.assigned_to_id, tb1.percent from (
Select
(select count(*) from issues where issues.due_date >= date(issues.closed_on) group by           issues.assigned_to_id)/
(select count(*) from issues group by issues.assigned_to_id) as percent
from issues)
as tb1
group by tb1.percent;

複数行の問題を解決しようとして少し混乱しているので、始めたときはさらに悪いかもしれませんが、ユーザーのリストとそのパーセンテージを取得できれば、それは素晴らしいことです!

「for each」のようなものを使いたいのですが、それが存在しないことはわかっています。

ありがとう!

4

5 に答える 5

0

このようなものが必要だと思います。課題 ID と時間通りに完了したパーセンテージのリストです。

select distinct issues.assigned_to_id, done_on_time.c / issue_count.c as percent
from issues
join 
  (select issues.assigned_to_id, count(*) as c 
   from issues 
   where issues.due_date >= date(issues.closed_on) 
   group by issues.assigned_to_id) as done_on_time
   on issues.assigned_to_id = done_on_time.assigned_to_id 
  (select issues.assigned_to_idm, count(*) as c
   from issues 
   group by issues.assigned_to_id) as issue_count
   on issues.assigned_to_id = issue_count.assigned_to_id 
于 2013-10-18T19:21:04.860 に答える
0

MySQL には、このケースに一致する cross/outer apply と同等のものがあります

SELECT T.*,Data.Value FROM [Table] T OUTER APPLY      

あなたはそれを使用しようとすることができます。

于 2013-10-18T15:51:08.867 に答える
0

おそらくすべきことは、IF ステートメントを使用することです。

SELECT
  assigned_to_id,
  SUM(IF(due_date >= date(closed_on), 1, 0))/SUM(1) AS percent
FROM issues
GROUP BY assigned_to_id
ORDER BY percent DESC

ここで、 でグループ化しassigned_to_id、 で並べ替えていることに注意してくださいpercent。これにより、各グループのパーセンテージを計算し、assigned_to_idそれらのグループを で並べ替えることができますpercent

于 2013-10-18T16:07:08.150 に答える
0

クエリを正確に書き直す必要がある場合は、これを試してください。

select issues.assigned_to_id, ((select count(*) from issues where issues.due_date >= date(issues.closed_on) )/
(select count(*) from issues)) as perc from issues group by issues.assigned_to_id;
于 2013-10-18T16:15:02.467 に答える
0

たとえば、除算演算が(foo) / (bar)あり、分子と分母の両方がサブクエリです。これらのサブクエリを取得してその回答を分割することを期待しているため、それぞれ単一の値を返す必要があります。1 / 2

1,2,3 / 4,5,6エラー メッセージは、1 つ (またはおそらく両方) が複数値のクエリ結果を返していることを示しているため、実際には有効な数学演算ではない のようなことをしようとしており、エラー メッセージが表示されます。

サブクエリを修正して、それぞれ SINGLE 値のみを返すようにします。

于 2013-10-18T15:45:08.577 に答える