0

これまでのところ、このクエリがあります

select count(*) as howMany,sum(Duration) as totalTime 
from [Tmp].[dbo].[tmp2] 
group by SUBSTRING(TextData,1,25) 

これは、howMany と totalTIme の 2 つの列を返すのにうまく機能します。各グループで同じ SUBSTRING(TextData,1,25) の結果を含む列も返すようにしたいと思います。ただし、これを達成するためにクエリを変更する方法がわかりません。

また、結果を totalTime 順に並べたいのですが、次の試みはコンパイルに失敗します

select * 
from (select count(*) as howMany,sum(Duration) as totalTime 
      from [Tmp].[dbo].[tmp2] 
      group by SUBSTRING(TextData,1,25) ) 
order by totalTime;
4

2 に答える 2

2
select SUBSTRING(TextData,1,25),
    count(*) as howMany,
    sum(Duration) as totalTime 
from [Tmp].[dbo].[tmp2] 
group by SUBSTRING(TextData,1,25)
order by 3 --3rd column

トリックを行う必要があります。

于 2013-10-10T17:33:03.123 に答える
1
select SUBSTRING(TextData,1,25) as textdata, count(*) as howMany,sum(Duration) as totalTime
from [Tmp].[dbo].[tmp2] 
group by SUBSTRING(TextData,1,25)
order by sum(duration)

選択ステートメントに部分文字列ビットを追加して、合計を order by に追加するだけでよいと思います。デフォルトは昇順で、ステートメントの最後に desc を付けてそれを逆にします

于 2013-10-10T17:34:25.207 に答える