คำนวณค่าที่ซ้ำกันของทุกค่า [ซ้ำกัน]
ฉันต้องการเพิ่มคอลัมน์ลงในตารางของฉันพร้อมกับจำนวน. ดังนั้นหากค่าไม่ซ้ำกันค่าคอลัมน์ควรเป็น 1 แต่ถ้ามีหลายสำเนาฉันต้องการค่าที่แตกต่างสำหรับทุกแถว (1,2 ... )
ตัวอย่างเช่นฐานข้อมูลคือ postgres
id | มูลค่า | นับ |
---|---|---|
1 | ก | 1 |
2 | ก | 2 |
3 | ข | 1 |
4 | ข | 2 |
5 | ข | 3 |
6 | ค | 1 |
ตัวอย่างฐานข้อมูล https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696
คำตอบ
5 a_horse_with_no_name
สามารถทำได้โดยใช้ฟังก์ชันหน้าต่าง
select id, value, count(*) over (partition by value order by id)
from the_table
order by id, value;