jon*_*bbs 7 sql t-sql sql-server sql-server-2005
不确定如何解释这个但是想象你有一个包含许多布尔字段的表......
表:汽车
列:
自动:布尔值
银色:布尔值
美国人:布尔
吵:布尔
臭臭:布尔
fast:布尔值
(愚蠢的田地,其中大部分都不会在现实中沸腾,只是一个例子)
我需要做的是生成这些字段的列表,每个字段旁边有一些搜索结果,所以如果数据库中有100辆银色汽车和57辆美国汽车,那么列表可能看起来有点像......
自动:(150)
银(100)
美国人(57)
吵闹(120)
臭臭(124)
快(45)
因此,它基本上就像一个过滤器列表,如果用户点击"白银",他们会缩小搜索范围,只显示银色汽车,他们知道他们将得到100个结果.然后,所有其他过滤器旁边的数字将减少,因为我们已经过滤掉所有非银色的汽车.
计算一个场的出现很容易......
SELECT COUNT(*)FROM CARS WHERE Automatic = true;
......例如,我会给第一行.但是我不想为每个过滤器做一个SQL语句,因为它们可能超过30个.我已经看到很多网站这样做,所以它必须比我想象的要容易.
任何帮助真的很感激:)
乔恩
Mos*_*azi 12
使用sql server 2008尝试对数据类型的字段进行求和时,会出现以下错误:
Msg 8117,Level 16,State 1,Line 10
操作数数据类型位对于sum运算符无效.
所以你可以尝试这个:
SELECT SUM(CAST(Automatic AS TINYINT)) as Automatic, SUM(CAST(Smelly AS TINYINT)) as Smelly, SUM(CAST(American AS TINYINT)) as Japanese FROM YourTable
Run Code Online (Sandbox Code Playgroud)
假设该位为1/0,则可以使用SUM而不是COUNT:
SELECT SUM(Automatic) as Automatic, SUM(Smelly) as Smelly, SUM(American) as Japanese FROM ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8133 次 |
| 最近记录: |