 Bu sorunu çözmek için bir SQL veritabanını sorgulayan bir C++ işlevi yazın:
"Çalışan_kimliği", "ad", "başlangıç_tarihi", "maaş" ve "departman_kimliği" sütunlarına sahip "çalışanlar" adlı bir tablonuz olduğunu varsayalım. Çalışan başına ortalama maaşın en yüksek olduğu departmanı bulmak için bir SQL sorgusu yazın.
İşte sorunu çözmek için bir SQL veritabanını sorgulayan bir C++ işlevi: ``` #include <iostream> #include <mysql.h> using namespace std; void findHighestAvgSalaryPerEmployee(MYSQL* conn) { MYSQL_RES* res; MYSQL_ROW satırı; string query = "Çalışanlardan avg_salary_per_employee olarak departman_kimliği, AVG(maaş) SEÇİN. if (mysql_query(conn, query.c_str())) { cerr << "Veritabanı sorgulama hatası: " << mysql_error(conn) << endl; mysql_close(bağlantı); çıkış(1); } res = mysql_use_result(conn); if (res) { satır = mysql_fetch_row(res); cout << "Çalışan başına ortalama maaşın en yüksek olduğu bölüm: " << row[0] << endl; } else { cerr << "Sonuç kümesi alınırken hata oluştu: " << mysql_error(conn) << endl; mysql_close(bağlantı); çıkış(1); } mysql_free_result(res); } int main() { MYSQL* bağ = mysql_init(NULL); if (conn == NULL) { cerr << "MySQL başlatılırken hata oluştu: " << mysql_error(conn) << endl; çıkış(1); } if (mysql_real_connect(conn, "localhost", "username", "password", "database", 3306, NULL, 0) == NULL) { cerr << "Veritabanına bağlanırken hata: " << mysql_error(conn) << son; mysql_close(bağlantı); çıkış(1); } findEn YüksekOrtalamaSalaryPerÇalışan(bağlantı); mysql_close(bağlantı); 0 dönüşü; } ``` Bu işlev, bir SQL veritabanına bağlanmak ve çalışan başına ortalama maaşın en yüksek olduğu departman için "çalışanlar" tablosunu sorgulamak için MySQL C++ Bağlayıcısını kullanır. Öncelikle, her departman için çalışan başına ortalama maaşı hesaplayan, sonuçları ortalama maaşa göre azalan düzende sıralayan ve yalnızca ilk satırı (en yüksek ortalamaya sahip olacak) döndüren bir SQL sorgu dizesi oluşturur. Ardından sorguyu yürütür, sonuçları alır ve çalışan başına en yüksek ortalama maaşı veren departman kimliğini verir.