回答

收藏

根据数据库中的列值生成直方图

技术问答 技术问答 347 人阅读 | 0 人回复 | 2023-09-14

假设我有一个像这样的数据库列“ grade”:( L9 e  ?7 t* H& F- V7 n+ @
|grade|
% |: ^- Q  c; R$ C: M  w|    1|/ ~0 ^/ p+ O3 f+ N! h5 y
|    2|$ v# K5 t5 h  ~1 B! ?
|    1|, r; g8 t1 n0 g$ h5 [: H
|    3|& L" \0 i& Y- k  ^7 x
|    4|/ `0 i$ D$ M. j1 `1 V
|    5|
$ O/ H7 n, H, l! g: {3 |* }( oSQL中是否有非平凡的方式来生成像这样的直方图?
1 A5 e( h' t4 Q- E1 e+ p|2,1,1,1,1,0|
/ T( \+ h: c( ?其中2表示1级出现两次,1表示{2..5}级出现一次,0表示6级完全没有出现。
2 n2 q0 A; S  `& H6 O我不介意直方图是否每计数一行。
# t2 q; J! I) @如果那很重要,则该数据库是由perl CGI通过unixODBC / FreeTDS访问的SQL Server。( O5 l6 _/ X& S( i  D1 j6 C7 }2 X: J
编辑: 感谢您的快速答复!只要我能确定哪个直方图值属于哪个等级,就可以不出现不存在的值(如上述示例中的6级)。- D: d! Q! e# w- P1 p$ l
                " U9 T: t( j- J, J
解决方案:
: X# d* i$ m3 Y  P                  Q' F- ^: E" Y% ~

/ y6 R; H! S- r4 P5 k  ~0 |
( ]+ [3 u% [9 ^6 o& G& i7 g/ b                SELECT COUNT(grade) FROM table GROUP BY grade ORDER BY grade
9 k( C5 K( |2 P尚未验证,但应该可以使用,但是不会显示6s等级的计数,因为它根本不在表中…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则