- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为“比较”的表和一个名为“字段”的列,我想查找计数和出现次数。我通过使用下面的命令找到了计数
但我想要显示一个附加列,它将显示第一次出现、第二次出现等。
P.S我正在使用mysql。
on executing select * from compare I get:
field
21
22
23
24
25
26
27
28
29
30
21
22
select field, count(*) as count
from compare
group by field
order by count desc, field
present output
field1, count
'21\r', '2'
'22\r', '2'
'23\r', '1'
'24\r', '1'
'25\r', '1'
'26\r', '1'
'27\r', '1'
'28\r', '1'
'29\r', '1'
'30\r', '1'
预期输出
field1, count occurrence
'21\r', '2' '1'
'22\r', '2' '1'
'23\r', '1' '1'
'24\r', '1' '1'
'25\r', '1' '1'
'26\r', '1' '1'
'27\r', '1' '1'
'28\r', '1' '1'
'29\r', '1' '1'
'30\r', '1' '1'
'21\r', '2' '2'
'22\r', '2' '2'
有一个大约 50 mb 的日志文件,我希望将其与其自身进行比较。我正在将数据从文本文件导入到 Compare1 表的 field1 列中。
关于使用丹的方式:
(select field1, count(*) as count,
@row_num := IF(@prev_value=field1,@row_num+1,1) AS Occurence,
@prev_value := field1
from compare1
group by field1
order by count desc, field1);
我得到:
字段 1、计数、出现次数、@prev_value := 字段 1
'21', '2', '1', '21'
'22', '2', '1', '22'
'23', '1', '1', '23'
'24', '1', '1', '24'
'25', '1', '1', '25'
'26', '1', '1', '26'
'27', '1', '1', '27'
'28', '1', '1', '28'
'29', '1', '1', '29'
'30', '1', '1', '30'
我需要:
field1, count, Occurence, @prev_value := field1
21', '2', '1', '21'
'22', '2', '1', '22'
'23', '1', '1', '23'
'24', '1', '1', '24'
'25', '1', '1', '25'
'26', '1', '1', '26'
'27', '1', '1', '27'
'28', '1', '1', '28'
'29', '1', '1', '29'
'30', '1', '1', '30'
'21', '2', '2', '21'
'22', '2', '2', '22'
最佳答案
您使用什么 RDBMS?在 SQL Server 2008 或更高版本上,您可以使用窗口函数:
SELECT
Field,
COUNT(*) OVER (PARTITION BY Field) AS Count,
ROW_NUMBER() OVER (PARTITION BY Field ORDER BY Field) AS Occurence
FROM Compare
在其他系统上,您可以尝试如下操作:
SELECT
Field,
Count,
T2.Number
FROM (
SELECT
Field,
COUNT(*) AS Count
FROM Compare
) T1
INNER JOIN Numbers T2 ON T2.Number >= 1 AND T2.Number <= T1.Count
在最后一个查询中,我假设您有一个名为“Numbers”的表,其中包含一列“Number”,其中有记录 1、2、3、4 等。该表使用实际计数连接到比较表的发生次数,为每个发生次数不断增加的事件生成一条记录。
或者,在 MySQL 上,您可以使用变量对出现的次数进行编号,从而无需连接 Numbers 表:
SELECT
Field,
(SELECT COUNT(*) FROM Compare T2 WHERE T2.Field = T1.Field) AS Count,
@row_num := IF(@prev_value=Field,@row_num+1,1) AS Occurence,
@prev_value := Field
FROM Compare T1,
(SELECT @row_num := 1) x,
(SELECT @prev_value := '') y
ORDER BY Field
关于mysql - 我想要显示一个附加列,它将显示第一次出现、第二次出现等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20633825/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!