Daha çox

Eyni id olan postgis cədvəlindəki dəyərləri yeni bir sütuna necə birləşdirmək olar?


Postgres-9.3 postgis 2.1-də aşağıdakı cədvəl var. (geom dəyərləri çox uzundur, aşağıdakı cədvəldə qısaltmaq üçün kəsdim):

id | ad | geom ------------------------- 12 | A | "01030000000" 12 | B | "01030000000" 12 | C | "01030000000" 12 | D | "01030000000" 34 | E | "050000005B41" 34 | F | "050000005B41" 34 | G | "050000005B41"

Bütün dəyərləri eyni id nömrəsinə sahib olduqları bir sütuna qruplaşdırmaq və birləşdirmək istəyirəm. Aşağıdakı kimi gözlənilən nəticə:

id | all_name | geom ---------------------------- 12 | A, B, C, D | "01030000000" 34 | E, F, G | "050000005B41"

Xahiş edirəm kimsə mənə kömək edə bilər?


Beləliklə:

Maks (id) AS id, array_to_string (array_agg (ad), ',') AS all_name, geom FROM thetable GROUP BY geom;

Yalnız qəribə bir şey, həndəsə və id qrupunu qruplaşdırmağı təmiz bir şəkildə əldə etmək üçün yaxşı bir yol olmadığından, yalnız geom üzərində qruplaşdırma ilə başa çatdı. Bir "max (həndəsə)" məcmuəsi və ya bir şey olsaydı, "id" ilə qruplaşdırmaq və həndəsə dəyərlərindən birini bu şəkildə götürmək daha asan olardı.


Access bu funksiyanı yerli olaraq təklif etməməsinə baxmayaraq, aşağıdakılar kimi bir sorğu ilə əldə edilə bilər:

Bu, "Id" adlı bir sütunlu "TableThatIncrements" adlı tək bir cədvəl yaradacaqdır. Artıq xüsusiyyətlər və / və ya digər sütunlar əlavə etmək üçün cədvəl redaktorundan istifadə edə bilərsiniz.

ehtiyaclarınıza uyğun olaraq, burada x başlanğıc artım nömrəsidir və y artacaq saydır. Yəni AUTOINCREMENT (100,5) verəcəkdir: 100, 105, 110, 115 və s.

Mövcud bir cədvəli dəyişdirmək istəyirsinizsə, aşağıdakı sorğudan istifadə edin. Xüsusi cədvəl nişanının bağlı olduğundan əmin olun ki, Access onu kilidləyə və dəyişdirə bilsin.

Aşağıdakıları edərək Access-də bir sorğu keçirə bilərsiniz:

"Yarat" sekmesine gedin və "Sorğu Dizaynı" nı basın

Yalnız cədvəllər seçməyinizi xahiş edən görünən pəncərəni bağlayın, buna ehtiyacımız yoxdur.

"Dizayn" sekmesine gedin və mətn daxiletmə ekranı əldə edənə qədər ox ilə düyməni vurun. (Varsayılan olaraq SEÇİM yazılır).

Varsayılan mətni silin və yuxarıdakı sorğunu yapışdırın.

"Çalıştır" düyməsini basın.

1- Cədvəl yaradın 1 2- -------> dizayn sorğusu yaratmağa gedin. 3- Cədvəli 4 bağlayın - yuxarıdan SQl-ə gedin. 5- Bu kodu keçin.

DƏYİŞƏN CƏDVƏL [CƏDVƏ1] Dəyişdirilən sütun [İd] SAYICI (8982,1)

Bu veb saytda nömrənizi istədiyiniz sayla başlamaq üçün çox sadə bir yol var: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Avtomatik nömrənin dəyişdirilməsini bildirən bir ifadə ilə bir sorğu yaradırsınız

TblName (ID) INSERT SELECT 999 AS Expr1

Burada tblName cədvəlin adı və şəxsiyyət nömrəsi AutoNumber sahəsinin adıdır.

Sonra əlavə etdiyiniz sətri silmək üçün ikinci bir sorğu keçirin:

TblName-dən HARADA SİLİN>

(Alternativ olaraq, sadəcə cədvəli aça və əlavə etdiyiniz sətri əl ilə silə bilərsiniz.)

İndi cədvələ əlavə olunan növbəti qeydə 1000 dəyəri verilir.

Bu metod yeni bir cədvəllə və ya Avtomatik Nömrə toxum dəyərinə çatmamış bir cədvəllə işləyir. (Əlbətdə ki, mövcud satırlar üçün ID sahəsi dəyişdirilməyəcək, lakin sonrakı satırlar 1000 ilə başlayacaq.) "

Erişimi aldatmalısınız, çünki təqdim etdiyi nömrədən fərqli bir avtomatik nömrə ilə maraqlanmadığınızı düşünür.

Cədvəli bir az quraşdırma tələb edəcək xüsusi avtomatik nömrəli ilə başlamalısınız. Ancaq bir dəfə gedirsinizsə, oradan əlavə etməyə davam edə bilərsiniz.

Google "giriş dəyişdirmə nömrəsi başlandı" və bunun üçün bir neçə seçim tapacaqsınız. Əksəriyyəti sahəni dəyişdirmək üçün əlavə sorğu yaratmağa etibar edir.

Başqa bir sayda başlamaq istədiyiniz sayğac növü sahəsini ehtiva edən ilk cədvəl yaradın. Heç bir qeyd daxil etməyin. Birinci cədvəldə sayğac sahəsi ilə eyni adda olan bir uzun tam ədədi növü sahəsi ilə ikinci bir cədvəl yaradın. Birinci cədvəldə sayğacı başlamaq istədiyiniz rəqəmdən bir az bir rəqəm daxil edərək ikinci cədvəldə bir qeyd yaradın. Bir əlavə sorğu yaradın, ikinci cədvəldəki bir qeydləri birinci cədvələ əlavə edin və onu çalıştırın İkinci cədvəli silin, birinci cədvələ əlavə etdiyiniz qeydləri silin və məlumat daxil etməyə başlayın.

Əlavə sorğu qurmaq istəmirsinizsə, hər zaman cədvəl qurub Excel-dən 1000 satır saxta məlumatı kopyalayıb yapışdırıb 1001 nömrəsinə çatana qədər qeydləri silə və oradan davam edə bilərsiniz.

ƏLAVƏ OLUNUB: Səbəb üçün izahat əlavə edin

Avtomat nömrənin yalnız 1-dən başlayacağının səbəbi, avtomatik sayğac sahəsinin daxili istinad sahəsi kimi istifadə edilməsi və yaxşı verilənlər bazası praktikasında ümumiyyətlə hər hansı bir şəkildə görünən formada istifadə edilməməsidir. Verilən bir cədvəldə unikal bir maddə olmadığı hallarda, cədvəlin axtarıla biləcəyi və indekslənə biləcəyi unikal bir giriş yaratmaq üçün istifadə olunur.

Bu olduqca köhnə bir mövzu, lakin yenə də ilk üç Google axtarış nəticəsi olaraq açılır.

Bir istifadəçinin avtomatik nömrəli sahənin dəyərini dəyişdirmək istəməsinin bir səbəbi də verilənlər bazasının düzəldilməsindən qaynaqlanan xətanı düzəltməkdir. Bir administrator bir verilənlər bazasının ön hissəsində bəzi böyük dəyişikliklər etmək istədikdə, administrator bütün əlaqəli cədvəllərin surətlərini çıxara bilər və ön ucun inkişaf nüsxəsini bu arxa tərəflərə yönləndirə bilər. Dəyişikliklər kifayət qədərdirsə, testdən sonra bütün əlaqəli cədvəlləri yenidən yönləndirərək ön hissənin istehsal nüsxəsini nüsxəsi ilə əvəz edə bilər.

Problem yoxdu? Yaxşı, avtomatik nömrəli artım ön tərəfdə qalır. Beləliklə, istehsal tərəfi admin nüsxə üzərində işləyərkən avtomatik nömrəni 50 və ya 500 və ya 5000 ədəd artırdısa, yeni istehsal nüsxəsi eyni nömrələri yenidən sınayacaq və bu sahələrə maddələr daxil edə bilməyəcək. bir anda, "aydın" olana qədər. 50, 500 və ya 5000 sıra excel məlumatlarını kopyalayın və yapışdırmağa çalışın. Hər sətirdə səhv olar (açıldıqda əlavə mesajları basdığınızdan əmin olun), lakin avtomatik nömrələr bu məbləğdə artacaq və yaxşısınız yenidən getmək. Avtomatik nömrələrdən bu şəkildə istifadə edirsinizsə, inkişaf nüsxəsi ilə yazmazdan əvvəl rəqəmləri istehsal db-də olduğu qədər artırmağınız tövsiyə olunur.

Bu, eyni zamanda avtomatik nömrənizi 1-dən yüksək bir şeydən başlamaq üçün bir yoldur. Coğrafi şəhərlər ana səhifənizdə səhifə ziyarət sayacını 17.479 səviyyəsində qurmağın köhnə günləri kimi, həqiqətən 16 dəfə ziyarət olundu. Səninlə


V6.0-da dəyişikliklər

  • Enlem və Boylam LOCATION-a əlavə edildi
  • Müqavilə sahibi sahəsi PAYER_PLAN_PERIOD-a əlavə edildi
  • Bütün əsas düymələr bigint olaraq dəyişdirildi
  • ADMISSION_SOURCE_CONCEPT_ID adı VISIT_OCCURRENCE və VISIT_DETAIL içərisində ADMITTED_FROM_CONCEPT_ID olaraq dəyişdirildi
  • UNIT_CONCEPT_ID, VALUE_AS_CONCEPT_ID və OPERATOR_CONCEPT_ID xaricində bütün Concept_Ids məcburidir. Mövcud bir dəyər yoxdursa, Concept_Id NULL əvəzinə 0 olaraq təyin edilməlidir. cədvəl silindi və PERSON cədvəlinə DEATH_DATETIME sahəsi əlavə edildi. Ölüm səbəbi CONDITION_OCCURRENCE-də saxlanılır
  • DATETIME sahələri məcburi və tarix sahələri isteğe bağlı edildi.


Videoya baxın: IMPORT SHP FROM QGIS TO POSTGRESQL WITH PLUGIN POSTGIS (Oktyabr 2021).