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

如果您需要详细数据和聚合数据,那么您可能需要执行两个查询来获取这两组不同的数据,或者只需查询详细信息并使用您使用的任何语言构建聚合(可能在多维数组中) )。例如在伪代码中:

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 回答