非常に単純なことですが、私はそれをうまく機能させることができません:)
select x.name, count(x.name) from <table_name> x where ...<complex and long>...
x.name が group by で使用されていないというエラーがスローされます。
select x.name from <table_name> x where ...<complex and long>...
正常に動作し、たとえば 6 つの名前を返します
select count(x.name) from <table_name> x where ...<complex and long>...
正常に動作し、たとえば数字の 6 を返します
しかし、次の方法でグループを追加しようとすると、組み合わせが機能しません。
select x.name, count(x.name) from <table_name> x where ...<complex and long>...
group by x.name
それは機能しましたが、すべてのカウントは 6 ではなく 1 でした。
問題は、最初に変数にカウントを取得してから、名前を取得するためだけに長い sql ステートメントを記述できることですが、長く複雑な選択ステートメントを 2 回記述したくないということです。1 回の選択で組み合わせを行うには、何らかの方法が必要です。すべての名前を取得し、ちなみにそれらの数を教えてください。
ありがとう
PS
name bla1 bla2
a ... ...
a foo ...
b foo ...
c ... ...
d foo ...
d foo ...
b foo ...
c foo ...
bla1 = foo である x.name の結果は次のようになります。
a
b
d
d
b
c
bla1 = foo の場合の count(x.name) の結果は次のようになります。
6
私の望ましい結果:
...variable definitions
select @foundName = x.name, @numOfAllFoundNames = count(x.name)
from <table_name> x where ...<complex and long>...
@foundName = a (名前に関係なく、名前の 1 つだけ) @numOfAllFoundNames = 6