3

これは非常に単純かもしれませんが、結果の平均を返すクエリを実行しようとしていますが、平均を取得するために使用した行数もカウントしたいと思います。例えば:

Row 1 = 5
Row 2 = 2
Row 3 = 9
Row 4 = 1

Average = 4.25
Count = 4

2つに並べられた1つのクエリでこれを行う方法はありますか?avg関数を使用した場合、常に1行が返されるため、カウントは4ではなく1になります。平均化するだけでなく、通過したレコードの数も示すクエリが必要です。

2つのクエリの使用を避けようとしています。ご協力ありがとうございました。

4

4 に答える 4

7

これはかなり基本的なことであり、検索によって発見できるはずです。

SELECT COUNT(field) as `count`, AVG(field) as `average` FROM table_name
于 2012-09-05T20:25:13.260 に答える
1

あなたが述べた言葉で-あなたがグループ化またはそのようなものでないなら-あなたはただ書くでしょう

SELECT COUNT(col) AS cnt, AVG(col) AS avg FROM tbl;

そして、あなたは問題がないはずです。1つの行があり、フィールドcntとcolに必要なものが含まれています。

あなたが抱えている問題は、おそらくmysql_num_rowsカウントを取得するためにを使用していることが原因ですが、これは正しくありません。 追加するのを忘れた:またはあなたがあなたの問題全体を提供しなかったという事実に。

于 2012-09-05T20:27:35.370 に答える
0

1つのクエリで複数の集計関数を使用できます。

SELECT COUNT(*), AVG(field) FROM mytable
于 2012-09-05T20:25:21.890 に答える
0
SELECT COUNT(*), AVG(YourColumn)
    FROM YourTable
于 2012-09-05T20:25:43.433 に答える