Bu soruyu nasıl ifade edeceğinizden emin değilim, ancak birleştirilmiş sorguyu birden çok satıra uygulamak istiyorum. Umarım bir örnek bunu daha kolay hale getirmelidir. yılların sayısı onlar oynuyorum yaniSQL'de toplu birleştirilmiş ve toplu olmayan sorgu
player | year | games
-------------------------
ausmubr01 | 2006 | 139
ausmubr01 | 2007 | 117
bondsba01 | 2006 | 130
bondsba01 | 2007 | 126
stairma01 | 2006 | 26
stairma01 | 2006 | 77
stairma01 | 2006 | 14
stairma01 | 2007 | 125
Ve her yıl her oyuncu için, onların "kariyer yılı" hesaplamak istiyorum: Aşağıdaki veriler var varsayarsak
player | year | games | cyear
--------------------------------
ausmubr01 | 2006 | 139 | 1
ausmubr01 | 2007 | 117 | 2
bondsba01 | 2006 | 130 | 1
bondsba01 | 2007 | 126 | 2
stairma01 | 2006 | 26 | 1
stairma01 | 2006 | 77 | 2
stairma01 | 2006 | 14 | 3
stairma01 | 2007 | 125 | 4
SELECT player, year, games, year - min(year) + 1 as cyear FROM baseball GROUP by player
olarak bu dönüşümü ifade etmek doğal olacaktır fakat agrega sorgular için kuralların ifadesi sadece her grup için bir kere değerlendirilir:
player | year | games | cyear
--------------------------------
ausmubr01 | 2006 | 139 | 1
bondsba01 | 2006 | 130 | 1
stairma01 | 2006 | 26 | 1
Bunu üstesinden nasıl genel olarak problem (ör. sadece bu durum için değil, ancak varolan bir sütunu ve bir toplu işlevle hesaplanan tek bir grup başına sayıyı birleştiren bir aritmetik işlem gerçekleştirmek istediğimde)?
uygun etiketi (Oracle, SQL Server, MySQL, vs) ilave ederek hedeflediği RDBMS'yi belirtiniz dil veya ürünün yararlanmak cevaplar olabilir evrensel olarak desteklenmeyen özellikler Ayrıca, belirli bir RDBMS ile etiketleyerek, sorunuzu yanıtlamak için daha uygun insanlardan dikkatini çekebilir – Taryn
@blue ayaklar Belirli bir RDBMS'ye değil, geniş ölçüde geçerli olan cevaplarla ilgileniyorum. – hadley