2
id  qid answer  date                    answer_userKey
72  2   2       2012-07-30 00:00:00     1
71  1   4       2012-07-30 00:00:00     1
70  2   2       2012-07-30 00:00:00     2
69  1   4       2012-07-30 00:00:00     2
68  2   2       2012-07-30 00:00:00     3
67  1   3       2012-07-30 00:00:00     3
66  2   2       2012-07-31 00:00:00     4
65  1   4       2012-07-31 00:00:00     4
64  2   2       2012-07-31 00:00:00     5

これが私のサンプルテーブルです。このようなすべての日付について、すべてのデータとすべての個別の answer_userKeys を取得する必要があります

date           DISTINCT(answer_userKey)
2012-07-30     3
2012-07-31     2

通常の連想配列のすべての単一の値と同様に、取得したときに取得します

SELECT * FROM tbl_data 
WHERE date BETWEEN '2012-07-29' AND '2012-08-01'

ここですべてを試しました:(

4

3 に答える 3

1

これを試して:

SELECT DATE(date) dte, COUNT(DISTINCT answer_userKey) cnt
FROM tbl_data 
WHERE DATE(date) BETWEEN '2012-07-29' AND '2012-08-01'
GROUP BY dte;
于 2012-12-19T18:45:25.790 に答える
0

これがあなたの要件であることを願っています..これはオラクルで動作します

select to_char(date,'yyyy-mm-dd') date
      ,count(distinct answer_userKey) DISTINCT(answer_userKey) 
from table_name 
group by to_char(date,'yyyy-mm-dd')
于 2012-12-19T18:41:19.437 に答える
0

詳細データと集計データの両方が必要な場合は、これら 2 つの異なるデータ セットを取得するために 2 つのクエリを実行するか、単に詳細をクエリして、使用している言語 (おそらく多次元配列) 内で集計を作成する必要があります。 )。たとえば、擬似コードでは次のようになります。

Query: SELECT * FROM tbl_data WHERE date BETWEEN '?' AND '?'

array; // multidimensional associative array to be populated
while ([fetch next row from result set as row] ) {
    array[row['date']][row['answer_userKey']] = row
}
于 2012-12-19T18:45:35.510 に答える