回答

收藏

SQL语句删除重复项并获取计数

技术问答 技术问答 223 人阅读 | 0 人回复 | 2023-09-12

我持续的SQL头痛…& N: p) ^! b6 Y; ?# R
如果运行以下解释的代码:, \& T# z0 N! U
SELECT State, Name, ID' c' J+ y8 g$ ?  m3 n
FROM ...+ n( e( C3 J3 j( @! M& C
WHERE Lost=False$ z+ S0 K" L8 Y/ X! O& A; M; k7 \
我会得到类似以下的内容:% C+ K/ \: \' D
State        Name        ID
( s  {& ~2 ^0 `/ `: ENY            A          123/ F' B1 E: R, A3 w$ O
NY            A          123
: R) x7 V1 b4 C8 k6 WNY            B          234! k1 O  T, ]9 b* g$ P3 u8 X' ^: T% w
NY            C          345) n+ }  M3 N) u
MD            X          356) x9 s, N2 ^6 D2 i4 v! E/ t- b% x
MD            Y          668
! L1 u5 P- Q$ Q& s( L4 l+ }8 F我真正需要的是每个州的资源数量之和。这里的问题是,如果我只是执行以下操作,则不会考虑到明显存在重复项(请参见上面的前两个记录)。% e) v( k8 o0 K# k- T$ y
SELECT state, Count(state) AS statecount
  f# ^% ~/ n( p/ ^- y# @' g$ p, [    FROM ....
1 @  q$ }* D: S1 H2 a& m- T   GROUP BY state, Lost
) k, s% T# X, S! {  g   HAVING Lost=false+ [& ^6 v6 |2 W* t# [  ~
在仅提取不同记录的情况下,如何获取丢失=否的每个状态的记录数?我以为也许可以在第一个查询中放入DISTINCT,然后在ColdFusion中运行查询查询,但是您不能在子查询中执行诸如聚合的操作。7 B* G2 L4 b/ z1 d# T8 A6 C
基本上,以上面的示例为例,我最终希望做到这一点:- ?, N/ Z3 Q: Y$ [
            State      Count
  C4 r( M- P$ F2 _- C( Y/ h              NY          3 (not 4!)
! X  I' r) {9 E. ]  p              MD          2
% U# N3 l* |7 q( U我应该注意…这在Access中$ C+ \# V; X; l! @. z
                " Y" z+ Q7 P" B. K: R
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则