【发布时间】:2012-09-06 20:20:54
【问题描述】:
我有以下查询。我正在尝试提取具有特定标准的记录数,然后除以按 cstmr_id 分组的记录总数。但是我遇到了一个错误。任何帮助,将不胜感激。此外,此语句是一个子查询,是更大的选择查询的一部分。我正在使用 SQL Server 2005
出现“'/' 附近的语法错误”错误
声明:
((SELECT count(*) FROM cstmr WHERE active=1 AND cstmr_type LIKE '%dtr%'
GROUP BY cstmr_id)
/ --division sign here. dividing top query by bottom
(SELECT count(*) FROM cstmr WHERE cstmr_type LIKE '%dtr%'
GROUP BY cstmr_id) ) As cstmr_rate
cstmr 表中的样本数据:
cstmr_id cstmr_type active
3423 dtr 1
1236 dtr 1
1842 dtr 1
8273 sys 2
9384 aod 1
3847 sys 2
样本预期结果:
cstmr_id cstmr_rate
3423 88.98
1236 25.21
1842 58.01
基本伪代码
仅选择“dtr”类型的活跃客户,然后除以客户总数。然后显示每个客户的这个派生比率。这是一个非常基本的等式,使用同一个表“cstr”
【问题讨论】:
-
实际错误和完整的 sql 语句很可能会有所帮助
-
好吧,我收到“'/' 附近的语法错误”
-
还有你为什么在里面有
group by?如果cstmr_id是唯一的,则COUNT(*)将始终为1。 -
你为什么不喜欢元音?
cstmr的输入速度真的比customer这样的单词快吗? -
@dido 请发布一些示例数据。预期的结果很好,但结果之前的样本数据会好得多
标签: sql sql-server database sql-server-2008