1

これは奇妙に思えます: [SQL FIDDLE]

2 人のユーザーは明らかに異なります。つまり、1<>2 です。では、なぜ個別のカウントが 1 と言っているのですか?

4

4 に答える 4

4

使いたいdistinct [User]

ユーザーは特別な言葉です

http://sqlfiddle.com/#!3/b4130/20

于 2012-06-25T20:29:00.493 に答える
3

ここにいくつかの説明付きの答えがあります...

ユーザーは予約語だけではありません。これは、システム定義の読み取り専用グローバル変数に似ています。

  • 現在のデータベースユーザーの名前に評価されます。したがって、すべての行が同じ値を取得し、count(distinct user)は1になります。

  • ユーザーは、システム定義のUSER_NAME()関数と同じ値を生成します。

したがって、Userを列名として扱いたい場合は、他の人が提案しているように、またcreatetableステートメントで行ったように[User]と記述します。

于 2012-06-25T20:49:00.420 に答える
3

userは予約済みキーワードです。実行する場合:

select DateKey, User from the_table

1ユーザーがまたは2ではなく、 のようなものであることがわかりますuser_b1234。Lamakが提案したよう[user]に、システム変数ではなく列を参照するために使用します。

于 2012-06-25T20:27:09.117 に答える
0

私はあなたがこれを望んでいると思います:

select 
    COUNT(DateKey)
    ,count(distinct User) Cnt
from the_table
where Datekey = 20120103
group by 
    DateKey

http://sqlfiddle.com/#!3/b4130/14/0

于 2012-06-25T20:27:32.067 に答える