Вопрос к программистам, общий

User avatar
Komissar
Уже с Приветом
Posts: 65204
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Вопрос к программистам, общий

Post by Komissar »

kyk wrote: 22 Sep 2019 07:58
Flash-04 wrote: 22 Sep 2019 04:08Тут того кто хоть как-то программировать умеют, воспринимают как суперменов :D
подожди, китайские студенты и аспиранты доберутся и дадут просра@ся
скорее, облака сделают профессию маловостребованной - в смысле нужно будет меньше специалистов в расчете на гигабайт.
deev_a_v
Уже с Приветом
Posts: 4660
Joined: 07 Apr 2018 15:16

Re: Вопрос к программистам, общий

Post by deev_a_v »

NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
- На основе знания языка (языков) программирования- т е знаете прекрасно какая команда (оператор и тд) что делает и так и опираясь на эти знания решаете задачу?
- Как-то по другому?

- Насколько хорошо знаете язык(и) с которыми работаете?

×××
На открытие темы натолкнул сегодняшний митинг с боссом (что-то вроде tech lead он) -
У меня есть мелкая задачка - в SSAS добавить measures такие же как я уже делала (Total minutes, и разная куча других) - но для Same Period Prior Year
Во встроенном DAX там есть функция SameperiodLastYear , я ее и использовала
(Твкже же как и в Power BI)

А босс сказал что вот в SQL он когда-то делал что-то более сложное чтобы добиться подобного результата
Я и напомнила что он тогда использовал
Union all и в where задал условие за текущий год-1 (тоже уже точно не помню, функции date там были)

А он заметил - что он совсем не помнит что он тогда использовал - а что он
Очень хорошо- мгновенно может выстроить алгоритм для решения той или иной задачи...

Вот я и думаю - находить алгоритм - это способности нужны или есть книги какие - где этому научиться можно?
В применении к базам данных, с исп SQL?

Вот я например, если не сложная,задача стоит то тоже очень быстро решение знаю
А если сложное или то ч чем я не сталкивалась - то впечатление что у меня не хватает - то ли знания более advanced SQL, толи как создать алгоритм решения задачи. Пока не всегда понимаю чего не хватает ))

Просто меня поразила как он забыл про union all
В то же время если задачу поставить он действительно мгновенно знает что надо написать чтобы решить !!!
Передайте боссу, что с тех времен, когда он писал сложные алгоритмы для простых вещей на SQL с помошью UNION, в языкдобавили много новых фич, которые сдeлали эти трюки не нужными. Так что знать возможности языка тоже очень помогает.
deev_a_v
Уже с Приветом
Posts: 4660
Joined: 07 Apr 2018 15:16

Re: Вопрос к программистам, общий

Post by deev_a_v »

voyager3 wrote: 22 Sep 2019 04:29 Вспомнил ещё, что, слышал, когда-то был годный русскоязычный онлайн-задачник по SQL. Сейчас погуглил - вроде sql-ex.ru . Сам не пробовал, потому что когда для меня это было актуально, не было дома доступа к этим вашим интернетам.
Ну и непонятно ,сколько ещё DB dev как специальность просуществует.
Не волнуйтесь, она вас переживет.

Лучшего языка для манипуляции данными, чем SQL, до сих пор не придумали. Т.н. No-SQL базы - это временное явление, когда технология уже позволила хранить огромные массивы данных, а серьезный sql софт запаздывал.
Вот в эту нишу устремились тривиальные надстройки над файловой системой, которые гордо назвали себя No-SQL DB.

Это уже было в 70-х, тогда на рынке было много более простых альтернатив SQL базам. Все они либо умерли, или приобрели SQL интерфейс.

https://blog.timescale.com/blog/why-sql ... b777b847a/
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Вопрос к программистам, общий

Post by Flash-04 »

kyk wrote:
Flash-04 wrote: 22 Sep 2019 04:08Тут того кто хоть как-то программировать умеют, воспринимают как суперменов :D
подожди, китайские студенты и аспиранты доберутся и дадут просра@ся
You wish.
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Вопрос к программистам, общий

Post by Flash-04 »

Komissar wrote:
kyk wrote: 22 Sep 2019 07:58
Flash-04 wrote: 22 Sep 2019 04:08Тут того кто хоть как-то программировать умеют, воспринимают как суперменов :D
подожди, китайские студенты и аспиранты доберутся и дадут просра@ся
скорее, облака сделают профессию маловостребованной - в смысле нужно будет меньше специалистов в расчете на гигабайт.
Аполитично рассуждаешь. Недавний скандал с Capital One показывает что ровно наоборот.
В настоящий момент в Канаде кол-во специалистов остро не хватает. В США ситуация такая же.
Not everyone believes what I believe but my beliefs do not require them to.
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

deev_a_v wrote: 22 Sep 2019 13:09
NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
- На основе знания языка (языков) программирования- т е знаете прекрасно какая команда (оператор и тд) что делает и так и опираясь на эти знания решаете задачу?
- Как-то по другому?

- Насколько хорошо знаете язык(и) с которыми работаете?

×××
На открытие темы натолкнул сегодняшний митинг с боссом (что-то вроде tech lead он) -
У меня есть мелкая задачка - в SSAS добавить measures такие же как я уже делала (Total minutes, и разная куча других) - но для Same Period Prior Year
Во встроенном DAX там есть функция SameperiodLastYear , я ее и использовала
(Твкже же как и в Power BI)

А босс сказал что вот в SQL он когда-то делал что-то более сложное чтобы добиться подобного результата
Я и напомнила что он тогда использовал
Union all и в where задал условие за текущий год-1 (тоже уже точно не помню, функции date там были)

А он заметил - что он совсем не помнит что он тогда использовал - а что он
Очень хорошо- мгновенно может выстроить алгоритм для решения той или иной задачи...

Вот я и думаю - находить алгоритм - это способности нужны или есть книги какие - где этому научиться можно?
В применении к базам данных, с исп SQL?

Вот я например, если не сложная,задача стоит то тоже очень быстро решение знаю
А если сложное или то ч чем я не сталкивалась - то впечатление что у меня не хватает - то ли знания более advanced SQL, толи как создать алгоритм решения задачи. Пока не всегда понимаю чего не хватает ))

Просто меня поразила как он забыл про union all
В то же время если задачу поставить он действительно мгновенно знает что надо написать чтобы решить !!!
Передайте боссу, что с тех времен, когда он писал сложные алгоритмы для простых вещей на SQL с помошью UNION, в языкдобавили много новых фич, которые сдeлали эти трюки не нужными. Так что знать возможности языка тоже очень помогает.
Интересно
А как еще можно выдать данные для Same Period Last Year , мы используем T-Sql в Ssms все таблицы

Он мне тогда показал -
Union All
Потом весь код копирует и в условии
где Where [clause] там задаётся условие - текущий год -1, кажется . С помощью разных функций

Как бы вы выдали данные за same period last year?
Если не напишете, то сама найду в понедельник ...

Я уже сейчас другим немного занимаюсь, опять не в SQL пока
Надеюсь буду все же использовать его как прикладной инструмент в своей работе дальше ...
User avatar
ak3
Уже с Приветом
Posts: 1781
Joined: 11 Jan 2001 10:01
Location: Томск->Дубровка (ON)

Re: Вопрос к программистам, общий

Post by ak3 »

Я вот эти книги порекомендую:
Joe Celko - SQL for Smarties
Itzik Ben-Gan - T-SQL programming
У них обоих целые циклы книг, от азов до продвинутых решений.

Для самых основ - C.J.Date, SQL and Relational Theory: How to write accurate SQL code.
Зато её так мало надо, всего две капли на стакан...
User avatar
Helmsman
Уже с Приветом
Posts: 6630
Joined: 15 May 2003 00:04
Location: LA

Re: Вопрос к программистам, общий

Post by Helmsman »

NtNet wrote: 22 Sep 2019 20:31 Как бы вы выдали данные за same period last year?
Если не напишете, то сама найду в понедельник ...
Например,
year in (this_year, this_year - 1) или (year = this_year or year = this_year - 1)
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: Вопрос к программистам, общий

Post by liamkin »

NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
В случае баз данных все алгоритмы известны уже. Надо просто помнить их и применять где нужно. Советую почитать книжки по теории множеств и теории баз данных. Там все довольно просто - надо только хорошую незанудную книжку найти. Гуглите амазон.

А в общем смысле - придумать хороший алгоритм тянет на Нобелевку в некоторых случаях. Вот я в свое время писал клон Пэкмэна и очень гордился собой, когда придумал алгоритм движения для преследующих пэкмэна монстриков. Монстрики получились слишком умными и хватало двух, чтобы очень быстро отловить пэкмэна... :mrgreen:
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Helmsman wrote: 23 Sep 2019 14:49
NtNet wrote: 22 Sep 2019 20:31 Как бы вы выдали данные за same period last year?
Если не напишете, то сама найду в понедельник ...
Например,
year in (this_year, this_year - 1) или (year = this_year or year = this_year - 1)
Там возможно надо было объединить данные из разных таблиц или что-то подобное

Только написать
Select... from ...
Where year = current year OR
year = this year -1

Или как вы написали с IN нельзя было
То есть там была эта часть с условиями
Но - До и После union all

Я найду тот код и разберусь в чем там дело было
Если бы так просто то он бы так и сделал, I guarantee 100%

Дело было очень давно, это то что начальник "дописал" в какие-то там старые мои коды

Я посмотрю
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

liamkin wrote: 23 Sep 2019 15:13
NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
В случае баз данных все алгоритмы известны уже. Надо просто помнить их и применять где нужно. Советую почитать книжки по теории множеств и теории баз данных. Там все довольно просто - надо только хорошую незанудную книжку найти. Гуглите амазон.

А в общем смысле - придумать хороший алгоритм тянет на Нобелевку в некоторых случаях. Вот я в свое время писал клон Пэкмэна и очень гордился собой, когда придумал алгоритм движения для преследующих пэкмэна монстриков. Монстрики получились слишком умными и хватало двух, чтобы очень быстро отловить пэкмэна... :mrgreen:
Спасибо за отличный совет и комментарий
Конечно, обязательно это сделаю
С октября начинаю само-учебу в доп к работе ))
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

ak3 wrote: 23 Sep 2019 14:37 Я вот эти книги порекомендую:
Joe Celko - SQL for Smarties
Itzik Ben-Gan - T-SQL programming
У них обоих целые циклы книг, от азов до продвинутых решений.

Для самых основ - C.J.Date, SQL and Relational Theory: How to write accurate SQL code.
Спасибо!
User avatar
Helmsman
Уже с Приветом
Posts: 6630
Joined: 15 May 2003 00:04
Location: LA

Re: Вопрос к программистам, общий

Post by Helmsman »

NtNet wrote: 23 Sep 2019 21:37
Helmsman wrote: 23 Sep 2019 14:49
NtNet wrote: 22 Sep 2019 20:31 Как бы вы выдали данные за same period last year?
Если не напишете, то сама найду в понедельник ...
Например,
year in (this_year, this_year - 1) или (year = this_year or year = this_year - 1)
Там возможно надо было объединить данные из разных таблиц или что-то подобное
Только написать
Select... from ...
Where year = current year OR
year = this year -1
Или как вы написали с IN нельзя было
То есть там была эта часть с условиями
Но - До и После union all
Я найду тот код и разберусь в чем там дело было
Если бы так просто то он бы так и сделал, I guarantee 100%
Дело было очень давно, это то что начальник "дописал" в какие-то там старые мои коды
Я посмотрю
Скорее разные условия. Если разница только в year, то union не нужен.
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Helmsman wrote: 23 Sep 2019 22:38
NtNet wrote: 23 Sep 2019 21:37
Helmsman wrote: 23 Sep 2019 14:49
NtNet wrote: 22 Sep 2019 20:31 Как бы вы выдали данные за same period last year?
Если не напишете, то сама найду в понедельник ...
Например,
year in (this_year, this_year - 1) или (year = this_year or year = this_year - 1)
Там возможно надо было объединить данные из разных таблиц или что-то подобное
Только написать
Select... from ...
Where year = current year OR
year = this year -1
Или как вы написали с IN нельзя было
То есть там была эта часть с условиями
Но - До и После union all
Я найду тот код и разберусь в чем там дело было
Если бы так просто то он бы так и сделал, I guarantee 100%
Дело было очень давно, это то что начальник "дописал" в какие-то там старые мои коды
Я посмотрю
Скорее разные условия. Если разница только в year, то union не нужен.
Наконец-то дошли руки проверить тот старый код с Union All -

Там не просто нужно было выдать данные - за текущий год (Current Period) или за предыдущий год (Prior Period) -

а выдать количество уникальных записей, для одних и тех же
Аккаунтов - сгруппировпных
по Current Period
Prior Period
Т.е

Аккаунты Current Period #of unique ids
Аккаунты Prior Period #of unique IDs


Поэтому и Union All

Если писать просто - условие за текущий год OR за год-1
То выдаст просто общее кол-во уникальных id для Аккаунта

И рез-тат будет -
Аккаунты #unique ids

Если же в select вставить
Current period
Prior period,
Но без union all

То получится

Аккаунты current prior #unique IDs

Как-то так...
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Все-таки интересно, что там за новые возможности языка, где без
Union all в таком случае можно обойтись???

Интересно

Язык - T-SQL
База - весь data warehouse system - в Ssms 2018

Если тут не ответят, то может в stackoverflow спрошу
User avatar
Helmsman
Уже с Приветом
Posts: 6630
Joined: 15 May 2003 00:04
Location: LA

Re: Вопрос к программистам, общий

Post by Helmsman »

передумал
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Helmsman wrote: 28 Sep 2019 06:15 передумал
???
User avatar
ak3
Уже с Приветом
Posts: 1781
Joined: 11 Jan 2001 10:01
Location: Томск->Дубровка (ON)

Re: Вопрос к программистам, общий

Post by ak3 »

NtNet wrote: 28 Sep 2019 02:46 Все-таки интересно, что там за новые возможности языка, где без
Union all в таком случае можно обойтись???

...
Tally table, например, хотя это не новая возможность языка, а довольно старый прием.
Зато её так мало надо, всего две капли на стакан...
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

ak3 wrote: 28 Sep 2019 13:21
NtNet wrote: 28 Sep 2019 02:46 Все-таки интересно, что там за новые возможности языка, где без
Union all в таком случае можно обойтись???

...
Tally table, например, хотя это не новая возможность языка, а довольно старый прием.
Спасибо! Посмотрю

Return to “Вопросы и новости IT”