mysql - MYSQL 中的行计数

标签 mysql sql

在mysql中,我得到表“a”如下

ID     USERNAME        SUBJECT_ID
1      ALAN            1
2      ALAN            2
3      ALAN            3
4      ALAN            4
5      ALAN            5
6      JOHN            6
7      ALAN            7
8      JOHN            8
9      ALAN            9

我只是想知道 username = ALAN 需要多少主题以及如何生成一个新列到 C 变成

ID     USERNAME        SUBJECT_ID    C
1      ALAN            1             1
2      ALAN            2             2
3      ALAN            3             3
4      ALAN            4             4
5      ALAN            5             5
7      ALAN            7             6
9      ALAN            9             7

该列按 USERNAME 分组并生成行数。我应该如何查询和生成 C 字段?

我尝试过查询,但不知道如何生成“C” SELECT ID,USERNAME,SUBJECT_ID,C FROM a WHERE USERNAME = "ALAN"GROUP BY SUBJECT_ID

请帮忙,谢谢。

最佳答案

你可以在mysql中使用行号,这样:

SELECT T1.*,@rownum := @rownum+1 as C
FROM TableName T1,(SELECT @rownum := 0) r
WHERE T1.Username LIKE '%ALAN%'

结果:

ID  USERNAME    SUBJECT_ID  C
-----------------------------
1   ALAN        1           1
2   ALAN        2           2
3   ALAN        3           3
4   ALAN        4           4
5   ALAN        5           5
7   ALAN        7           6
9   ALAN        9           7

SQL Fiddle 中的示例.

关于mysql - MYSQL 中的行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24106642/

相关文章:

php - 如何在php中运行外部程序

c# - 在配置中找不到提供程序或无效错误

mysql - 约束和索引中的命名约定

sql - WHERE 使用 CASE 过滤不同的值

php - 如何修复错误: SQLSTATE[42S02]: Base table or view not found: 114 6 Table 'bbs_hnq.configs' doesn't exist (SQL: select * from `configs` limit 1)

mysql - 找到原始的mysql查询

php - JOIN 2 具有不同列的表

java - 按计数查询dsl转换器组

sql - 使用多个替换函数调用进行查询 - 如何提高性能?

javascript - (Oracle) 将 us7ascii 转换为 Snowflake?