1

質問は、問題自体よりも複雑に見えます。では、例を示します。私は、 MySQLに ObjectId INTEGER(10) という 1 つのフィールドしか持たない"Test" テーブルを持っています。ObjectId フィールドの値:
1
1
1
2
2

MySQL クエリ ブラウザで次のステートメントを実行します。

SELECT DISTINCT ObjectId obid, (SELECT count(*) FROM Test WHERE ObjectId = obid) AS cnt FROM Test

結果は私が期待するものです: 上記の例では、以下を含む 2 行の数:
列 1: ObjectId 値
列 2: それぞれの ObjectId 値が列に表示される回数。

obid        cnt
1           3
2           2

次に、 SQLiteデータベースで作成された同一のテーブル (構造とデータ) に対して同じステートメントを実行します。「no such column: obid」というエラーが表示されます。

上記の SELECT は、私の目的には非常に便利です。それを一連の選択 (カーソルの使用など) に置き換えることを余儀なくされると、少し奇妙に見えます。私はSQLiteを初めて使用するので、何か見逃しているかもしれません。私は多くのことを調査しましたが、結果はゼロでした。

それで、SQLite データベースで同じ結果を生成する同様の単一の SELECT ステートメントがあるかどうか、誰か考えがありますか?

ありがとう

4

1 に答える 1

1

あなたはそれを複雑な方法でやっています。:) GROUP BY必要なものを取得する必要があります。

SELECT ObjectID AS obid, COUNT(1) AS cnt
FROM Test
GROUP BY ObjectID
于 2012-05-21T22:17:36.430 に答える