2

以下のSQLにwhere句を追加して、「howmany」という列に1より大きい結果のみが表示されるようにしたいのですが、試行するとエラーが発生し続けます。

 select monthname(birthdate) as 'Month', Count(*) as howmany
 from tblBday
 group by month(birthdate)
 ;
4

5 に答える 5

1

これは、WHERE句でエイリアスを使用できないためです。

また、WHERE句で集計関数を実行することはできません

あなたはこのようなものが必要です

SELECT monthname(birthdate) as Month, Count(*) AS howmany
FROM tblBday
GROUP BY month(birthdate)
HAVING Count(*) > 1
 ;

これがHAVINGについてのチュートリアルです

于 2012-11-02T18:52:05.287 に答える
1
 select monthname(birthdate) as 'Month', Count(*) as howmany
                                ^--   ^--

そのようなエイリアスを引用することはできません。一重引用符(')は物事を文字列に変換します-文字列はエイリアスではなく、エイリアスにすることはできません。引用符を削除するか、バッククォートを使用します。

select monthname(birthdate) as Month, Count(*) as howmany
于 2012-11-02T18:52:55.087 に答える
1

句でエイリアスを使用することはできません。集計関数を使用するため、句WHEREが必要です。HAVING

select monthname(birthdate) as `Month`, Count(*) as howmany
from tblBday
group by month(birthdate)
having Count(*) > 1

句でエイリアスを使用する場合はWHERE、クエリをサブクエリにすることができます。

select `month`, howmany
from
(
    select monthname(birthdate) as `Month`, Count(*) as howmany
    from tblBday
    group by month(birthdate)
) src
where howmany > 1
于 2012-11-02T18:51:55.477 に答える
0

試す

select monthname(birthdate) as 'Month', Count(*) as howmany
from tblBday
group by month(birthdate)
having howmany > 1
;
于 2012-11-02T18:52:16.383 に答える
0
 select monthname(birthdate) as 'Month', Count(*) as howmany
 from tblBday
 group by monthname(birthdate)
Having count(*) > 1
;
于 2012-11-02T18:53:28.690 に答える