【问题标题】:Selecting count of values in multiple columns using two tables使用两个表选择多列中的值计数
【发布时间】:2015-06-01 22:52:59
【问题描述】:

我还是 tsql 的新手,并试图弄清楚如何构建这个查询。

我有两张桌子。一种称为镜像,它具有所有校区的官方列表,用于在网络表单上为用户填充校区的下拉列表。然后他们可以选择 5 个选项,然后在提交表单(请求)时用他们的请求填充另一个表。 IE。 CampusChoice1、CampusChoice2..等。

我正在尝试构建一个页面来显示所有收集到的数据的最终结果。经过一番阅读,我想我可能需要使用 PIVOT 来实现这一点,但我无法看到查询。

我可以对每个choice1-5 进行基本查询,但我有点希望它们一起在没有选择某些校区的情况下为空或零。 像

--单列的简单计数 选择 CampusChoice1, COUNT(*) as '#' 从请求 按 CampusChoice1 分组

或者 --但这并没有给出我想要的结果,因为它没有考虑所有可能的选择。 SELECT CampusChoice1, COUNT() as '#', CampusChoice2, COUNT() as '#', CampusChoice3, COUNT() as '#', CampusChoice4, COUNT() as '#', CampusChoice5, COUNT(*) as '#' FROM Operations.dbo.TransferRequest 按 CampusChoice1、CampusChoice2、CampusChoice3、CampusChoice4、CampusChoice5 分组

有什么想法可以展示这个吗?至少在 PIVOT 表上,我是否走在正确的轨道上?

【问题讨论】:

  • 这个问题和c#有关系吗?
  • 对不起..我最终使用此查询来构建图表,或者可能只是 c# 中的网格视图。试图首先确定查询。我删除了标签。
  • 提示:使用适当的软件(MySQL、Oracle、DB2、...)和版本(例如sql-server-2014。语法和功能的差异通常会影响答案。

标签: tsql


【解决方案1】:

不确定我是否正确理解了你的问题,但假设你有这个:

CampusChoice  | Other data ...
------------------------------
CampusChoice1 | ...
CampusChoice2 | ...
CampusChoice1 | ...

那么对于上面只有 3 行的示例,您想要这个最终结果:

CampusChoice1 | 2 | CampusChoice2 | 1 | CampusChoice3 | 0 | ...

实现这一点的 T-SQL 是:

select
    'CampusChoice1',
    sum( case when CampusChoice = 'CampusChoice1' then 1 else 0 end ) '#',
    'CampusChoice2',
    sum( case when CampusChoice = 'CampusChoice2' then 1 else 0 end ) '#',
    'CampusChoice3',
    sum( case when CampusChoice = 'CampusChoice3' then 1 else 0 end ) '#',
    ...
from
    ...

将总和与大小写相结合,将 CampusChoice1 的每一行的总和为 1,而不是 CampusChoice1 的每一行的总和为 0,对每个 CampusChoiceN 重复此操作。

【讨论】:

  • 对不起。希望我可以包括一个img,但我太新了。 Requests 表是多列,例如 ID、TimeStamp、UserID,然后是 CampusChoice1、CampusChoice2、CampusChoice3 等。每个都是一个 varchar,其中包含用户从表单上的 dropDownList 中选择的校园名称。
  • 别担心,只要告诉我我是否正确理解了这个问题。如果不是,我误解了什么?
  • 实际上是这样的(请求表中有 5 个列和 113 个校区) id |... CampusChoice 1 |校园选择2 |校园选择3 | ETC ... - - - - - - - - - - - - - - - - - - - - - - - ------------------------------------------------ 1 |... AAA Elem | DDD 元素 | XXX MS 2 |... BBB 元素 | AAA 元素 | ZZZ HS 3 |... CCC 元素 | XXX女士 | TTT 埃莱姆
猜你喜欢
  • 1970-01-01
  • 2015-03-30
  • 2016-07-18
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 2014-05-04
  • 2021-10-15
相关资源
最近更新 更多