简体   繁体   中英

How to get row occurrence value in MySQL?

I have a following table

id   name   amount
1    aaa     1000
2    bbb     1500
3    ccc     1700
4    ddd     2000
5    aaa     1400
6    aaa     1700
7    bbb     1800

What I need is one more column to display the occurrence value based on the name as follows

 id   name   amount   occurrence
  1    aaa     1000     1
  2    bbb     1500     1
  3    ccc     1700     1
  4    ddd     2000     1
  5    aaa     1400     2
  6    aaa     1700     3
  7    bbb     1800     2

You can do it with a correlated subquery:

SELECT id, name, amount, 
       (SELECT COUNT(*)
        FROM mytable AS t2
        WHERE t2.name = t1.name AND t2.id <= t1.id) AS occurrence
FROM mytable AS t1   

Demo here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM