LINUX.ORG.RU

SQL. Смысл конструкции

 


1

2

Встретил в коде такую конструкцию

SELECT COUNT(DISTINCT id) FROM table where ...
При том, что id bigint PRIMARY KEY

Какой смысл в DISTINCT ?

QUERY PLAN в постгресе с/без distinct ничем не отличается.

★★★★★

Когда что-то работает не так как надо, sqlщик суёт везде distinct, пока не заработает. Запрос не сразу был таким, его переписывали раз 50, пока он не заработал и еще 20 раз после.

crutch_master ★★★★★
()

вероятнее всего там раньше был некий джойн, который удваивал количество id, если они есть соседних таблицах, и автору нужно было «количество записей из таблица1 которые есть в таблица 2»

anonymous
()

Это, видимо, автор кода решил обойтись без универсального способоа убрать дубликаты в духе row_number() over ()

Возможно, sql этот довольно древний и оконных функций еще не было.

in_dance
()
Ответ на: комментарий от crutch_master

кручмастер ты или кто-то срочно запилите новость, в России теперь запрещены образовательные курсы без ведома властей, а также любая иная просветительская деятельность https://novayagazeta.ru/articles/2021/03/16/gosduma-priniala-zakonoproekt-o-zaprete-zanimatsia-prosvetitelskoi-deiatelnostiu-bez-odobreniia-vlastei что означает что даже линуксовые сходни нацеленные на обмен опытом, конференции о новых технологиях и софте, да и вообще всё вне закона если это не было утверждено и одобрено правительством я так понимаю в частном порядке. Надо вникать и разбираться. Это напрямую касается линукса и просветительской деятельности которую в частности и мы на форуме ведём. «распространение знаний, умений, навыков, ценностных установок, опыта и компетенции» На форуме есть преподаватели (чувак с полосатой аватаркой иронично) короче кудато напиши я анон на этом мои полномочия всё.

По моему это страннннннннннннно. (((((((

anonymous
()

Если бд постгрес, то планировщик мог оптимизировать запрос и разницы действительно никакой

nikolnik ★★★
()
Ответ на: комментарий от anonymous

в России теперь запрещены образовательные курсы без ведома властей, а также любая иная просветительская деятельность

4.2

static_lab ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.