0

この現在のクエリはうまく機能し、各レコードとオフィス名についてテーブル内で何回オフィスが発生するかをカウントできます。このクエリを拡張して、現在のように Office と Count を最初に表示し、次に Office に一致した各レコードのカウントの下に列 lastName、Phone を表示し、次の Office と Office(Count) に移動してそれらの姓を表示するにはどうすればよいですか、電話記録など?それはMySQLで可能ですか?

SELECT Office, COUNT(Office) AS c 
FROM Active 
GROUP BY Office 
HAVING COUNT(Office) >= 5  ORDER BY c DESC

例:

オフィス1 | 2

オフィス1 | 姓 | 電話

オフィス1 | 姓 | 電話

オフィス2 | 3

オフィス2 | 姓 | 電話

オフィス2 | 姓 | 電話

オフィス2 | 姓 | 電話

4

2 に答える 2

1

いいえ、それはできません。最善の策はUNIONですが、同じ数の列と列の種類が必要であり、基準に一致しません。

試してみませんか

SELECT Office, lastName, Phone FROM Active ORDER BY Office

プログラミング言語で、行を解析し、カウンター変数を使用して同一Officeのレコードをカウントし、独自のテーブルを作成します。

編集:スプレッドシートに直接エクスポートするためだとおっしゃっています。これは 2 つのクエリで実行できます。count() クエリを実行してから、上記のクエリを実行します。2 つの結果をエクスポートし、必要に応じてスプレッドシートで混合します。ねえ、それは仕事を成し遂げます。

于 2012-06-07T17:31:19.113 に答える
1

MySQL のUNIONを使用することはできますが、列の数と列名は同じでなければなりません。

全体として、これは間違ったアプローチのようです。この種の出力が必要ない場合は、ロジックを再考してみてください。

姓と電話番号だけを受け取り、結果をキャッシュしてから解析することをお勧めします。COUNT(*) は技術的に冗長な情報です。同一の Office を持つ行の数が既に説明しているためです。

于 2012-06-07T17:24:50.647 に答える