回答

收藏

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

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

我持续的SQL头痛…, J9 I4 K" ~8 G! \/ r3 ]
如果运行以下解释的代码:  J8 x* L! o3 y- V
SELECT State, Name, ID$ n4 L" s9 i# |4 G+ J& j
FROM ...
. ]0 t0 g1 H+ u! X  F; A7 ~WHERE Lost=False+ G0 e) B, c! J) V
我会得到类似以下的内容:
% [. O! f/ H4 }9 sState        Name        ID$ h0 N( h2 I( T8 h; j# ^. v! o
NY            A          123
$ k0 N+ U+ g% e6 ~& M" ^NY            A          123
8 {  G. z0 F  u7 ]NY            B          234
% J4 v! _' q! c! z- ?6 _7 fNY            C          345
, I& D, Z. e3 t; e7 qMD            X          356
1 V/ D$ H# [% VMD            Y          668
  f+ N! U3 V1 N/ m3 ?& u我真正需要的是每个州的资源数量之和。这里的问题是,如果我只是执行以下操作,则不会考虑到明显存在重复项(请参见上面的前两个记录)。
6 M+ E' E- G5 b2 w7 }/ Y SELECT state, Count(state) AS statecount
/ E; f9 b3 J7 T& H: s" B, N    FROM ....
: b5 v2 P0 b. S& O2 h   GROUP BY state, Lost! d! v3 R) h! ?: S4 b% D
   HAVING Lost=false" _: i4 ?& a, w* y! b* _
在仅提取不同记录的情况下,如何获取丢失=否的每个状态的记录数?我以为也许可以在第一个查询中放入DISTINCT,然后在ColdFusion中运行查询查询,但是您不能在子查询中执行诸如聚合的操作。
- y3 D  l- U9 H! U* j6 v, R* W基本上,以上面的示例为例,我最终希望做到这一点:' W- _2 d- _  ]  d4 I+ n- g
            State      Count
3 G" B/ W! N* ^/ w) D0 P  [) U( Z; v              NY          3 (not 4!)
' v$ P! k' s; q! p: e9 ^9 O              MD          2
7 |5 x- B" C" K" J! c- K我应该注意…这在Access中: Y5 q9 X6 U3 _: G- }
                0 J8 @( A" G; x- g  A6 H
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则