首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在列中查找选择的序列

在列中查找选择的序列
EN

Stack Overflow用户
提问于 2019-04-11 05:47:56
回答 1查看 30关注 0票数 0

有一个表,其中user_id是每个考生的选择,选择是所有三个问题的答案。我想得到考生做出的所有不同的选择顺序,并对顺序进行计数。有没有一种方法可以编写sql查询来实现这一点呢?谢谢

代码语言:javascript
运行
复制
----------------------------------
| user_id        | Choice        |      
----------------------------------
|     1          |   a           |
----------------------------------
|     1          |   b           |    
----------------------------------
|     1          |   c           |
----------------------------------
|     2          |   b           |
----------------------------------
|     2          |   c           |
----------------------------------    
|     2          |   a           |
----------------------------------

愿望答案:

代码语言:javascript
运行
复制
----------------------------------    
|     choice          |  count   |
----------------------------------
|      a,b,c          |    1     |
----------------------------------
|      b,c,a          |    1      |
-----------------------------------
EN

回答 1

Stack Overflow用户

发布于 2019-04-11 05:52:27

在BigQuery中,您可以使用聚合函数:

代码语言:javascript
运行
复制
select choices, count(*)
from (select string_agg(choice order by ?) as choices, user_id
      from t
      group by user_id
     ) t
group by choices;

?用于指定表排序的列。记住:表代表无序的集合,所以没有这样的列,选择可以是任何顺序。

您可以使用string_agg()在SQL Server 2017+中执行类似的操作。在早期版本中,您必须使用XML方法,这是相当令人不快的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55621773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档