根据列名称进行选择,再进行另一个选择(EVAL?)

Ben

我有2个表,一个表包含需要计数的列名列表,另一个表包含要计数的数据

Table A
ProgramId  ColumnName
1          Country
1          Gender
2          AgeRange
2          Region

Table B
ProgramId  Country  Gender  AgeRange  Region
1          USA      M       18-25     Midwest
1          USA      F       <18       Northeast
1          MEX      M       <18       South
2          USA      M       18-25     Midwest
2          USA      M       26-35     Midwest

给定一个特定的ProgramId,我需要一个表A的每一列的列表,以及每个值和表B的计数

需要示例输出(参数:@ProgramId = 1)

ColumnName  ColumnValue  ValueCount
Country     USA          2
Country     MEX          1
Gender      M            2
Gender      F            1

从我能够找到的谷歌搜索中,我将需要某种动态声明。对我来说,这很好,因为唯一有权访问表A的人将是内部开发人员。

马里

SQL小提琴

MS SQL Server 2008架构设置

CREATE TABLE TableA (ProgramId INT, ColumnName VARCHAR(20))
INSERT INTO TableA VALUES
(1          ,'Country'),
(1          ,'Gender'),
(2          ,'AgeRange'),
(2          ,'Region')


CREATE TABLE TableB (ProgramId VARCHAR(20), Country VARCHAR(20), 
      Gender VARCHAR(20), AgeRange VARCHAR(20), Region VARCHAR(20))
INSERT INTO TableB VALUES
('1'          ,'USA'      ,'M'       ,'18-25'     ,'Midwest'),
('1'          ,'USA'      ,'F'       ,'<18'       ,'Northeast'),
('1'          ,'MEX'      ,'M'       ,'<18'       ,'South'),
('2'          ,'USA'      ,'M'       ,'18-25'     ,'Midwest'),
('2'          ,'USA'      ,'M'       ,'26-35'     ,'Midwest')

查询1

;With x AS 
(
Select * 
From TableB 
      UNPIVOT(ColumnValue FOR ColumnName IN (Gender, Country))up
)
Select x.ColumnName
      ,x.ColumnValue
      ,COUNT(x.ColumnValue) ValueCount
From x 
inner join TableA a ON x.ColumnName = a.ColumnName
WHERE x.ProgramId = 1   --<-- or maybe the parameter @ProgramId
GROUP BY x.ColumnName,x.ColumnValue

结果

| ColumnName | ColumnValue | ValueCount |
|------------|-------------|------------|
|    Country |         MEX |          1 |
|    Country |         USA |          2 |
|     Gender |           F |          1 |
|     Gender |           M |          2 |

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据另一个 SELECT 的结果进行查询以选择某些内容?

来自分类Dev

SQLite:选择,根据一个属性desc分组。并根据另一个asc进行排序

来自分类Dev

SQL-根据另一个表中给出的匹配值在一个表中进行选择

来自分类Dev

如何根据从另一个下拉列表中进行选择来过滤下拉列表结果?

来自分类Dev

如何根据一个谓词比较两个列表的元素并根据另一个谓词进行选择?

来自分类Dev

如何从MySQL中的另一个选择结果中进行选择?

来自分类Dev

从另一个表获取动态列名称以进行SQL更新

来自分类Dev

使用另一个具有相同列名选择的数据框对数据框列进行R变异选择

来自分类Dev

根据另一个表从一个表中选择唯一行,然后对其进行排序

来自分类Dev

如何根据另一个表中的索引序列对列中的名称进行排序?

来自分类Dev

如何根据另一个选择框的选择更改选择框的选择值

来自分类Dev

在按另一个属性进行分组时选择一种特技

来自分类Dev

在按另一个属性进行分组时选择一种特技

来自分类Dev

Django 模型 - Charfield 从另一个模型中的一行中进行选择?

来自分类Dev

根据另一个表选择数据

来自分类Dev

根据另一个元素属性选择元素

来自分类Dev

选择查询以基于另一个表对结果进行计数

来自分类Dev

SQL通过使用另一个表值进行选择

来自分类Dev

通过与另一个表列进行比较来选择列

来自分类Dev

从另一个表中选择进行MySQL更新

来自分类Dev

在另一个表上具有多个匹配项的select中进行选择

来自分类Dev

在菜单中进行选择时尝试在另一个脚本中执行方法

来自分类Dev

SQL通过使用另一个表值进行选择

来自分类Dev

jQuery的选择几个选项,单击另一个复选框进行多选

来自分类Dev

SQL Server-选择要基于另一个列值进行更新的列

来自分类Dev

MySql通过从另一个表中排除所有ID进行选择

来自分类Dev

从另一个表中选择进行MySQL更新

来自分类Dev

python根据名称将一个列表中的文件与另一个列表中的文件进行匹配

来自分类Dev

根据另一个列表对列表进行排序

Related 相关文章

  1. 1

    如何根据另一个 SELECT 的结果进行查询以选择某些内容?

  2. 2

    SQLite:选择,根据一个属性desc分组。并根据另一个asc进行排序

  3. 3

    SQL-根据另一个表中给出的匹配值在一个表中进行选择

  4. 4

    如何根据从另一个下拉列表中进行选择来过滤下拉列表结果?

  5. 5

    如何根据一个谓词比较两个列表的元素并根据另一个谓词进行选择?

  6. 6

    如何从MySQL中的另一个选择结果中进行选择?

  7. 7

    从另一个表获取动态列名称以进行SQL更新

  8. 8

    使用另一个具有相同列名选择的数据框对数据框列进行R变异选择

  9. 9

    根据另一个表从一个表中选择唯一行,然后对其进行排序

  10. 10

    如何根据另一个表中的索引序列对列中的名称进行排序?

  11. 11

    如何根据另一个选择框的选择更改选择框的选择值

  12. 12

    在按另一个属性进行分组时选择一种特技

  13. 13

    在按另一个属性进行分组时选择一种特技

  14. 14

    Django 模型 - Charfield 从另一个模型中的一行中进行选择?

  15. 15

    根据另一个表选择数据

  16. 16

    根据另一个元素属性选择元素

  17. 17

    选择查询以基于另一个表对结果进行计数

  18. 18

    SQL通过使用另一个表值进行选择

  19. 19

    通过与另一个表列进行比较来选择列

  20. 20

    从另一个表中选择进行MySQL更新

  21. 21

    在另一个表上具有多个匹配项的select中进行选择

  22. 22

    在菜单中进行选择时尝试在另一个脚本中执行方法

  23. 23

    SQL通过使用另一个表值进行选择

  24. 24

    jQuery的选择几个选项,单击另一个复选框进行多选

  25. 25

    SQL Server-选择要基于另一个列值进行更新的列

  26. 26

    MySql通过从另一个表中排除所有ID进行选择

  27. 27

    从另一个表中选择进行MySQL更新

  28. 28

    python根据名称将一个列表中的文件与另一个列表中的文件进行匹配

  29. 29

    根据另一个列表对列表进行排序

热门标签

归档