回答

收藏

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

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

假设我有一个像这样的数据库列“ grade”:- f* m. r  Q) P% L5 ~( l, L. J
|grade|
' B. V7 ~& ]( {+ i# B. u2 W|    1|3 U( d  H2 C+ B" i* }
|    2|" V/ u0 I" Q1 \; h% N% m
|    1|
# O6 ]: v0 y8 A9 m7 ?, Z|    3|  D) k% b; W! _2 r$ F3 n
|    4|' a: Q. S% N1 @' n% s
|    5|
4 `$ V6 \9 G9 L7 uSQL中是否有非平凡的方式来生成像这样的直方图?
& e% w# U$ T- I1 M. N  j|2,1,1,1,1,0|8 Q9 F& ~# k( D% I
其中2表示1级出现两次,1表示{2..5}级出现一次,0表示6级完全没有出现。
1 x. v4 D; |' c- @' C$ M* ?# f我不介意直方图是否每计数一行。7 Y2 \) ~! P* \
如果那很重要,则该数据库是由perl CGI通过unixODBC / FreeTDS访问的SQL Server。
- ^2 B: _- G; A, p) k编辑: 感谢您的快速答复!只要我能确定哪个直方图值属于哪个等级,就可以不出现不存在的值(如上述示例中的6级)。, E$ L# z1 \: `! p) t: e0 N
               
$ R. g" C$ g+ S2 ?. q0 Z4 [解决方案:* K3 P1 T% M* @7 q  ?
               
2 s: h. S" b7 g, C$ U1 P/ v/ C3 f: S; g/ b( M

* T& }/ S6 [2 y$ _. i' R                SELECT COUNT(grade) FROM table GROUP BY grade ORDER BY grade7 O+ [/ X5 u' K2 z5 @
尚未验证,但应该可以使用,但是不会显示6s等级的计数,因为它根本不在表中…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则