2017-07-22 14 views
0

SQL Serverでgroup by 1を使用するにはどうすればよいですか?SQL Serverでグループ化する方法

私は、OracleのSQL Serverへの変更が必要であることから、多くのSQL合計を持っています。合計列オラクルでは、彼らは1でグループ化されている。しかし、SQL Serverのグループでは1つfalseです。 は、例えば、Oracleでは

select SUM(PRICE) as Total 
from MyTable 
group by 1 

が行われますが、SQL Serverの場合はfalse。 Sql Serverでどうすればいいですか?

+1

「1」インデックスの代わりに元のカラム名を使用 –

+1

カラム名を 'select'に追加すると、結果がより意味深くなります。 –

+2

あなたは 'SUM'以外の' SELECT'に他の列を持っていないので、グループ化することは絶対にありません.....あなたは何をやろうとしていますか? –

答えて

1

SQLサーバーで< = 2012、既知のとおりです。これはGROUPを1でサポートしていませんが、同じであるようにSQLを試すことができます。 --- --- 1つのテーブル例

CREATE TABLE table_name (
    column1 int 
); 

を作成し、データがnullの場合、1行を返す:

select sum(column1) as total 
from table_name 

--- 1

によってデータヌル< => Oracleグループあれば0行を返します
select sum(column1) as total 
from(
select column1, 1 as GroupBy from table_name 
) a 
group by GroupBy 
0

GROUP BYの正しい構文は、条件(WHERE)は任意である

SELECT column1, column2 
FROM table_name 
WHERE [ conditions ] 
GROUP BY column1, column2 


です。

+0

私はちょうど合計1列が必要とし、任意の列でグループ化する必要はありません、ありがとう –

2

1により、グループはSQL Serverでサポートされていませんが、あなたは、このように同じコードを置くことができます。

select SUM(PRICE) as Total 
from MyTable 
having count(PRICE) > 0 
+0

ありがとう、それは私が必要なものです –

関連する問題