#postgresql #psql #naukaprogramowania #bazydanych polecenie: SELECT cena FROM TOWAR GROUP by cena having count(cena)>1 - dziala super ale wystarczy ze dodam opis : SELECT cena, opis, from towar group by cena, opis having count(cena)>1 - już niestety daje niekorzystny wynik, mimo ze w teorii jedyne co dodałem do zapytania to opis. orientuje się ktoś może gdzie tkwi błąd w tym zapytaniu ? dzięki
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Godziu73: nic się nie pojawiało w ogóle. Na szczęście udało się ten problem przeskoczyć :
---> select opis, cena from towar where cena in (select cena from towar group by cena having count(cena)>1);
  • Odpowiedz
#sql #bazydanych
Jak zmusić #postgresql, żeby uwzględniał nulle przy liczeniu percentyli?
Gdyby uwzględniał, to wyniki tych dwóch kwerend byłyby różne, bo nulle wstawione na górę lub dół popchnęłyby inne wartości na środek.

changesets=# select percentile_disc(0.5) within group (order by age nulls last ) from (select closed_at - created_at as age from note a, boundaries b where ST_Intersects(a.geom,b.geom) ) s;
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TheOranguTANK zależy jak bardzo jest ważne żeby się nie sypnęło. W jednym projekcie robiłem tak że baza była na tmpfs, główna partycja read only, raz na godzinę nowe dane wrzucane na zdalny serwer, raz na dobę baza kopiowana na dysk. Oprócz tego karta przemysłowa SLC.

Ogólnie przy zwykłym użyciu jeśli masz karty dobrej jakości nie powinno być problemów, ale z tym że może kiedyś paść to trzeba się pogodzić.
  • Odpowiedz
@Godid1951: jeśli wystarcza Ci robienie tego ręcznie to tak, wyjmujesz kartę, na kompie robisz obraz dd, pakujesz czym chcesz i wkładasz kartę z powrotem.

Do tego projektu o którym pisałem wyżej zrobiłem trochę inaczej - podzieliłem kartę na trzy partycje - boot, mmcblk0p1 oraz mmcblk0p2 i zrobiłem skrypty które potrafią zmienić partycję root w /boot/config.txt i zrobić reset. Wtedy w mmcblk0p1 mam normalny system, w mmcblk0p2 mam minimalną wersję która potrafi
  • Odpowiedz
siemka. dzisiaj mam problem jak wyciagnac nazwe miesiaca poprzez DATENAME. Gdzie nie zajrzę to jest format DATENAME (datepart, date) a ja potrzebuje tworzyc nazwe daty wg kolumny najlepiej takiej w której będzie '1' i zeby to zamienaic na 'styczeń' #sql #bazydanych
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

mam taki problem. zapytanie juz jest niemal gotowe ale nie moge go zrobic do konca. moze ktos mi wskaze jak to mozna uproscic, zrobic latwiej albo chociaz ZEBY DZIALALO. w drugim where umiescilem RankingDwoj=1 i wiem ze nie powinno go tam byc ale nei wiem gdzie mam wsadzic ten warunek. reszta zapytania dziala #sql #bazydanych
https://pastebin.com/tgt2YKuR
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rosso_corsa: SELECT*
FROM (
SELECT*, DENSE_RANK() OVER(PARTITION BY idwykladowcy ORDER BY SUM(LiczbaDwoj)DESC) AS RankingDwoj
FROM tmp
WHERE LiczbaPiatek=0
GROUP BY tmp.IdStudenta, tmp.ImieStudenta, tmp.NazwiskoStudenta, tmp.IdWykladowcy, tmp.ImieWykladowcy,
  • Odpowiedz
mam problem z zapisem takiego zapytania: zwróc studentów, którzy nie dostali żadnej pały w całym semestrze. jedynie udaje mi sie usunać rekord z oceną niedostateczną ale jak wykreslic całego studenta na podstawie jednej oceny? #bazydanych #sql
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam problem. Nic nie grzebałem w kodzie na swojej stronie od dłuższego czasu aż tu pewnego dnia po prostu baza danych przestała przyjmować dane. Mam powiedzmy wiele skryptów w PHP, które przyjmują dane z formularza na stronie i dodają je do bazy danych MySQL. Od kilku dni dane nie zostają wprowadzone do bazy, a sam skrypt nie wypluwa błędów tylko zwraca 0 jako nr ostatniego rekordu dodanego do bazy. Pierwsze co zrobiłem
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Szkołę skończyłem 3 lata temu, a nadal mogę się zalogować na swoje uczniowskie konto w dzienniku (vulcan). Są tam nr telefonów, maile, adres, imię i nazwisko. Warto skrobać do szkoły/vulcana, by usunęli te dane?

#bazydanych #bezpieczenstwo #it
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gumaa: kategorie i podkategorie trzymalbym w jednej tabeli z dwoma dodatkowymi polami parent_id (na siebie, lub null) oraz stringiem ze schematem drzewa (np numery id ze sciezka do roota oddzielane kropkami, to pomaga w wyszukiwaniu wszystkich podkategorii)
  • Odpowiedz
Mirki szybkie pytanie, baza MongoDB dla każdego rekordu tworzy dodatkowe ObjectId (_id), mogę wymusić podmianę by baza używała mojego Guida jak główny Id. Czy, ktoś spotkał się z sytuacją, by MongoDB sprawiało problemy bez domyślnego ObjectId ?
#programowanie #bazydanych #mongodb #nosql
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@stolar28: Pole _id musi być w dokumencie obowiązkowo, ale nie musi być to ObjectId. Wystarczy że będzie unikalne dla kolekcji oraz niemutowalne, może być dowolnego typu z wyjątkiem Arraya.
Stringi sprawdzają się doskonale.
  • Odpowiedz
@bledny: select avg(c) from (select count(meldunek.pesel) as c from meldunek group by meldunek.id_pok)
Przy czym to ignoruje pokoje puste. Jak chcesz z pustymi, to trzeba zrobić jakiś join.
  • Odpowiedz
select avg(c) from (select count(meldunek.pesel) as c from meldunek group by meldunek.idpok)


@vytah: Dzięki za trop, poszło tak:

select avg(c) from (select count(meldunek.pesel) as c from meldunek group by meldunek.id_pok) as m;
  • Odpowiedz
  • 2
@bledny takie są założenia, w praktyce w czasach przed komputeryzacją popełnili masę błędów, dlatego np. w formularzach które pytają o pesel pyta się też o datę urodzenia
  • Odpowiedz
moze ktos zna jakas magiczna instrukcje #sql #mysql aby wybrać z tabeli "inne niż"
Przyklad: mamy kolumne ze stringami a w niej np przedmioty sklepowe i w polach są "srubki", "gwozdzie", "nakrętki" etc Potrzebuje znalezc klientów, ktorzy zakupili np 5 przedmiotów innych niż "srubki" #naukaprogramowania #bazydanych
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

select count(iloscprzemiotow), klient from tabela where przedmiot != 'srubki' group by klient having count(iloscprzemiotow) = 5


@munny: musialem jeszcze uzyc cli bo oprocz !='srubki' w ilosciach x sztuk potrzebowalem innych warunków np 'srubki' w ilosci x ale ogolnie udało się. dzieki za pomoc
  • Odpowiedz
Admini, jak to jest? :) Ciekaw jestem co zazwyczaj dzieje się, gdy w jakimś serwisie zmieniam swoje dane na koncie (panelu użytkownika), np. hasło, mail czy powiązania z kontem social media. Czy stare dane są archiwizowane i dana firma ma listę moich haseł z np. ostatnich 10 lat czy usuwane i na serwerze zostaje tylko to co jest aktualne? Jestem pewien, że wszystko jest możliwe, ale jestem ciekaw jak wg Was wygląda
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@marian1881: nikt nie ma listy twoich haseł, haseł się nie trzyma w bazie; mają jakieś pseudolosowe, długie ciągi znaków. Używając hasła które podajesz przy logowaniu i odpowiedniej funkcji hashującej można otrzymać ten hash, ale konwersja w drugą stronę jest niemożliwa.

W praktyce to oprócz hasha mają jeszcze sól (losowy dodatek doklejany do hasła przed haszowaniem), ale to już wchodzenie w szczegóły.

Doczytaj o hashowaniu haseł jeśli cię to interesuje.
  • Odpowiedz
@TKX1: Klientów trzymaj w osobnej tabeli a w tabeli serwisy zamiast danych klientów zastosuj klucz obcy do tabeli z klientami. Co do nazw tabel i kolumn, stosuj albo polskie nazwy albo angielskie , taki misz-masz jest tragiczny ;)
  • Odpowiedz