Frank | Frank is a DSL for quickly writing web applications in Swift | Web Framework library
kandi X-RAY | Frank Summary
kandi X-RAY | Frank Summary
Frank is a DSL for quickly writing web applications in Swift with type-safe path routing.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Frank
Frank Key Features
Frank Examples and Code Snippets
Community Discussions
Trending Discussions on Frank
QUESTION
I have a dataset with the name of Danish ministers and their position from 1990 to 2020 (data comes from dataset called WhoGovern; https://politicscentre.nuffield.ox.ac.uk/whogov-dataset/). The dataset consists of the ministers name
, the ministers position
, the prestige
of that position, and the year
in which the minister had that given position.
My problem is that some ministers are counted twice in the same year (i.e., the rows aren't unique in terms of name
and year
). See the example in the picture below, where "Bertel Haarder" was both Minister of Health and Minister of Interior Affairs in 2010 and 2021.
I want to create a dataset, where all the rows are unique combinations of name
and year
. However, I do not want to remove any information from the dataset. Instead, I want to use the information in the prestige
column to combine the duplicated rows into one. The observations with the highest prestige should be the main observations, where the other information should be added in a new column, e.g., position2
and prestige2
. In the example with Bertel Haarder the data should look like this:
(PS: Sorry for bad presenting of the tables, but didn't know how to create a nice looking table...)
Here's the dataset for creating a reproducible example with observations from 2010-2020:
...ANSWER
Answered 2021-Jun-08 at 14:04Reshape the data to wide format twice, once for position
and the other for prestige_1
, and join the two results.
QUESTION
I have a list with dates, names and a value. I am now looking for hours for a solution to list all individual names on a specific date and count them
so the list looks like:
...ANSWER
Answered 2021-Jun-15 at 11:28Try this...
For count:
=query({A:C};"select Col2,count(Col3) where Col1 = date '"&text(E2;"yyyy-mm-dd")&"' group by Col2 order by Col2 label count(Col3) '' ";0)
It gets the date from a cell (E2
), but you can hard code it into the query if you need to, using:
where Col1 = date '2021-06-14'
For a sum of:
=query({A:C};"select Col2,sum(Col3) where Col1 = date '"&text(E2;"yyyy-mm-dd")&"' group by Col2 order by Col2 label sum(Col3) '' ";0)
QUESTION
here is the code im using to listen to changes in my firestore database:
...ANSWER
Answered 2021-Jun-14 at 04:37You have two options here:
The simplest one is to clear the array every time your callback gets invoked, because
doc.docs
contains all relevant data to rebuild the UI anyway. So this would be callingorders = []
at the top of the callback.If you want more granular control over updating the UI, you can iterate over
doc.docChanges
, which allows you to view the changes between the snapshots. So with this you can determine what documents were added to the snapshot (initially that'll be all of them), which ones were removed, and which docs were updated.
Many UI frameworks these days perform minimal updates to the UI based on the data you provide them with, so I'd definitely recommend checking whether that is the case for Vue too before taking the second approach.
QUESTION
I'd like to create a regex that would be able to grab everything up to and after DESCRIPTION, until the next TITLE: is found.
...ANSWER
Answered 2021-Jun-11 at 01:07/(?=TITLE: )/g
seems like a reasonable start. I'm not sure if the gutter of 2 characters whitespace is in your original text or not, but adding ^
or ^
to the front of the lookahead is nice to better avoid false-positives, i.e. /(?=^TITLE: )/mg
, /(?=^ TITLE: )/mg
or /(?=^ *TITLE: )/mg
.
QUESTION
Solved
I am trying to figure out why my solution is wrong. Made both, second is correct. I like the first better, because the intervals are more manageable and pleasing for my bad programming brain. And quite frankly, I am kind of lost as to what happens from pH 8 (Neutral) and up (solution 2). Therefore I would like to continue to work in this style for future assignment, rather than solution 2 (correct). However, solution 1 that I prefer is wrong and returns weakly though it should be strongly acidic Why is that and how can this be fixed?
Def: assigning category based on pH (2.3)
pH & category
0–2 Strongly acidic
3–5 Weakly acidic
6–8 Neutral
9–11 Weakly basic
12–14 Strongly basic
Anything else falls in pH out of range
ANSWER
Answered 2021-Jun-09 at 23:53There are many ways to do what you did but here is one that can help you start with python and make your life easier
QUESTION
We have a code in production that in some situation may left-shift a 32-bit unsigned integer by more than 31 bits. I know this is considered undefined behavior. Unfortunately we can't fix this right now, but we can work this around, if only we can assume how it works in practice.
On x86/amd64 I know processor for shifts uses only the appropriate less-significant bits of the shift count operand. So that a << b
is in fact equivalent to a << (b & 31)
. From the hardware design this makes perfect sense.
My question is: how does this work in practice on modern popular platforms, such as arm, mips, RISC and etc. I mean those that are actually used in modern PCs and mobile devices, not outdated or esoteric.
Can we assume that those behave the same way?
EDIT:
The code I'm talking about currently runs in a blockchain. It's less important how exactly it works, but at the very least we want to be sure that it yields identical results on all the machines. This is the most important, otherwise this can be exploited to induce a so-called chain split.
Fixing this means hassles, because the fix should be applied simultaneously to all the running machines, otherwise we are yet again at risk of the chain split. But we will do this at some point in an organized (controlled) manner.
Lesser problem with the variety of compilers. We only use GCC. I looked at the code with my own eyes, there's a
shl
instruction there. Frankly I don't expect it to be anything different given the context (shift operand comes from arbitrary source, can't be predicted at compile time).Please don't remind me that I "can't assume". I know this. My question is 100% practical. As I said, I know that on x86/amd64 the 32-bit shift instruction only takes 5 least significant bits of the bit count operand.
How does this behave on current modern architectures? We can also restrict the question to little-endian processors.
...ANSWER
Answered 2021-Jun-02 at 20:15With code that triggers undefined behavior, the compiler can just about do anything - well, that's why it's undefined - asking for a safe definition of undefined code doesn't make any sense. Theoretical evaluations or observing the compiler translating similar code or assumptions on what "common practice" might be won't really give you an answer.
Evaluating what a compiler really has translated your UB code to would probably be your only safe bet. If you want to be really sure what happens in the corner cases, have a look at the generated (assembly or machine) code. Modern debuggers give you the toolset to catch those corner cases and tell you what actually happens (the generated machine code is, after all, very well defined). This will be much simpler and much safer than to speculate on what code the compiler might probably emit.
QUESTION
I'm try extract the first two words from a string in dataframe
df["Name"]
...ANSWER
Answered 2021-Jun-06 at 14:13df['temp'] = df.Name.str.rpartition().get(0)
df
QUESTION
Just for context, I've got a Git repo with a number of remotes, some of which I consider less important and put in a subgroup by prepending them with a group name and a slash. For example, I might have origin
, othercomputer
as my "main" remotes; and otherpeople/alice
, otherpeople/bob
as secondary remotes that I just check in on occasionally. I was looking for a simple way to make gitk
only list branches in my main remotes (since gitk --all
lists everything).
Just as a random thing, I tried running gitk \*
, and frankly to my surprise, it seems to have done exactly what I was looking for (displaying my local branches and my "main" remotes), so I tried to figure out what it actually does. Since the arguments to gitk
are mostly the same as those to git rev-list
, I've been trying to read that manpage in order to do that, but I can't find anything.
So, what does gitk \*
do, and where is this documented? (I assume that it is documented, since Git documentation is generally quite excellent.)
(Just to avoid confusion, the backslash in \*
is the shell escape to pass the asterisk unmodified to gitk
. I did not mean to imply that I'm actually passing that backslash to gitk
.)
ANSWER
Answered 2021-Jun-03 at 21:13gitk *
(with the star quoted from the shell) causes gitk
to run:
QUESTION
`CREATE TABLE PERSON
(
Person_id NUMBER(3) PRIMARY KEY,
Surname VARCHAR2(20),
First_name VARCHAR2(20),
Sex CHAR(1),
Birth_date DATE,
Street VARCHAR2(40),
Town CHAR(20),
Postcode NUMBER(4),
Next_of_kin NUMBER(3)
);
CREATE TABLE STAFF
(
Person_id NUMBER(3) PRIMARY KEY,
Start_date DATE,
Staff_type VARCHAR2(15),
Charges NUMBER(10,2),
Resign_date DATE,
FOREIGN KEY (Person_id) references PERSON(Person_id)
);
CREATE TABLE WARD (
Ward_code CHAR(3) PRIMARY KEY,
Ward_name VARCHAR2(20),
Bed_count NUMBER(4),
Opened_date DATE,
Last_painted_date DATE,
Daily_charge NUMBER(10,2)
);
CREATE TABLE OPERATION_TYPE (
Op_code CHAR(3) PRIMARY KEY,
Operation_name VARCHAR2(50),
Theatre_fee NUMBER(10,2),
Days_in NUMBER(5)
);
CREATE TABLE ADMISSION (
Admission_id NUMBER(3) PRIMARY KEY,
Patient_id NUMBER(3),
Admission_date DATE NOT NULL,
Expected_op CHAR(3),
Admitted_by NUMBER(3),
Ward_code CHAR(3),
Discharge_date DATE,
FOREIGN KEY (Patient_id) references PERSON(Person_id),
FOREIGN KEY (Expected_op) references OPERATION_TYPE(Op_code),
FOREIGN KEY (Admitted_by) references PERSON(Person_id),
FOREIGN KEY (Ward_code) references WARD(Ward_code)
);
CREATE TABLE OPERATION (
Operation_id NUMBER(3) PRIMARY KEY,
Actual_op CHAR(3),
Admission_id NUMBER(3),
Op_date DATE,
Surgeon NUMBER(3),
Anaesthetist NUMBER(3),
FOREIGN KEY (Surgeon) references PERSON(Person_id),
FOREIGN KEY (Anaesthetist) references PERSON(Person_id),
FOREIGN KEY (Actual_op) references OPERATION_TYPE(Op_code),
FOREIGN KEY (Admission_id) references ADMISSION(Admission_id)
);
CREATE TABLE OBSERVATION(
Admission_id NUMBER(3),
Observ_date DATE,
Observ_time NUMBER(4),
Observ_type CHAR(10),
Observ_value NUMBER(4),
Staff_id NUMBER(3),
PRIMARY KEY (Admission_id,Observ_date,Observ_time,Observ_type),
FOREIGN KEY (Admission_id) references ADMISSION(Admission_id),
FOREIGN KEY (Staff_id) references STAFF(Person_id)
);
REM***********************
REM PERSON TABLE
REM***********************
INSERT INTO PERSON VALUES (101,'Black','Barry','M','31/12/1959','11 High St.','Cooma',2630,102);
INSERT INTO PERSON VALUES (102,'Black','Mary','F','11/04/1965','11 High St.','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (103,'Strathclyde','Albert','M','15/5/1955','3 The Mews','Hawthorne',3171,104);
INSERT INTO PERSON VALUES (104,'Strathclyde','Alice','F','17/7/1955','3 The Mews','Hawthorne',3171,103);
INSERT INTO PERSON VALUES (105,'Green','Gill','F','16/6/1966','124 Main St.','Young',2594,106);
INSERT INTO PERSON VALUES (106,'Green','Graham','M','24/4/1967','124 Main St.','Young',2594,105);
INSERT INTO PERSON VALUES (107,'Gray','Lesley','F','12/9/1972','130 Main St.','Young',2594,109);
INSERT INTO PERSON VALUES (109,'Gray','John','M','14/4/1972','130 Main St.','Young',2594,107);
INSERT INTO PERSON VALUES (110,'Samuelson','Thomas','M','1/1/1964','17 The Mews','Hawthorne',3171,NULL);
INSERT INTO PERSON VALUES (111,'Abrahams','Mary','F','15/5/1967','2177A The Esplanade','Ivanhoe',3878,NULL);
INSERT INTO PERSON VALUES (112,'Aumann','Monica','F','25/5/1955','29 The Esplanade','Ivanhoe',3878,NULL);
INSERT INTO PERSON VALUES (113,'Brown','Melissa','F','8/8/1984','11 East St.','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (114,'Napier','Mary','F','1/1/1971','163 New Rd.','Henty',2658,NULL);
INSERT INTO PERSON VALUES (115,'Nelson','Nigel','M','2/2/1972','165 Young Rd.','Temora',2666,NULL);
INSERT INTO PERSON VALUES (116,'Newman','Olive','F','3/3/1973','21 Olympic Way','Henty',2658,NULL);
INSERT INTO PERSON VALUES (117,'Gray','Lesley','M','31/12/1989','130 Andres St.','Young',2594,105);
INSERT INTO PERSON VALUES (118,'Hon','Tasuku','M','13/3/1953','21 Silcon Height','Henty',2658,NULL);
INSERT INTO PERSON VALUES (119,'Livingstone','Frank','M','3/3/2003','21 Sun Height','Henty',2658,122);
INSERT INTO PERSON VALUES (120,'Giggle','Frank','M','23/3/1975','21 Albrige Close','Cooma',2630,121);
INSERT INTO PERSON VALUES (121,'Giggle','Felicia','F','3/3/1980','21 Albrige Close','Cooma',2630,120);
INSERT INTO PERSON VALUES (122,'Black','Frank Jr','M','13/3/2011','21 Stun Height','Henty',2658,123);
INSERT INTO PERSON VALUES (123,'Black','Frances','F','12/12/2005','21 Stun Height','Henty',2658,122);
INSERT INTO PERSON VALUES (124,'Smith','Buddy','M','11/12/1979','101 High St.','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (125,'Smith','Maxime','F','31/12/1979','101 High St.','Cooma',2630,124);
INSERT INTO PERSON VALUES (126,'Smith','Issac','M','1/12/2007','101 High St.','Cooma',2630,124);
INSERT INTO PERSON VALUES (127,'Smith','Ronny','M','3/12/2009','101 High St.','Cooma',2630,124);
INSERT INTO PERSON VALUES (128,'Giggle','Fanny','F','3/12/2007','121 Close Rose','Hillo',2330,120);
INSERT INTO PERSON VALUES (129,'Murad','Nadia','F','3/3/2000','121 Close Rose', 'Hillo',2330,130);
INSERT INTO PERSON VALUES (130,'Murad','Tange','M','3/3/1999','7711 Albrige Close','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (131,'Rome','Paula','F','23/9/1965','21 Height Close','Cooma',2630,132);
INSERT INTO PERSON VALUES (132,'Rome','Paul','M','13/3/1966','21 Height Close','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (133,'Rome','Fay','M','3/3/2017','21 Height Close','Cooma',2630,132);
INSERT INTO PERSON VALUES (134,'Murad','Michelle','F','3/3/2001','1 Height Close','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (135,'Trump','Donald','M','13/3/1956','222 White House Avenue','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (136,'Trump','Melania','F','3/3/1992','222 White House Avenue','Cooma',2630,135);
INSERT INTO PERSON VALUES (137,'Trump','Baron','M','3/6/2005','222 White House Avenue','Cooma',2630,135);
INSERT INTO PERSON VALUES (138,'Johnson','Boris','M','23/9/1965','10 Downing Street','Wagga Wagga',2999,NULL);
INSERT INTO PERSON VALUES (139,'Cordeiro','Wayne','M','3/3/1965','777 Hawaii Close Rose', 'Hillo',7770, NULL);
INSERT INTO PERSON VALUES (140,'Cordeiro','Anne','F','23/4/1968','777 Hawaii Close Rose', 'Hillo',7770, 139);
INSERT INTO PERSON VALUES (141,'Thatcher','Margaret','F','21/1/1955','120 Main Sq.','Wagga Wagga',2999,142);
INSERT INTO PERSON VALUES (142,'Thatcher','Denis','M','23/9/1955','120 Main Sq.','Wagga Wagga',2999,NULL);
INSERT INTO PERSON VALUES (143,'Thatcher','Carols','F','1/9/1985','120 Main Sq.','Wagga Wagga',2999,142);
INSERT INTO PERSON VALUES (144,'Nelson','Nigel','M','22/2/1992','15 Young Rd.','Temora',2666,NULL);
INSERT INTO PERSON VALUES (145,'Neon','Gela','F','2/2/1972','1465 Main Rd.','Temora',2666,NULL);
INSERT INTO PERSON VALUES (146,'Twain','Shane','F','21/1/1995','A-129 Main Rose Sq.','Wagga Wagga',2650,147);
INSERT INTO PERSON VALUES (147,'Twain','Dens','M','23/9/1985','A-129 Main Rose Sq.','Wagga Wagga',2650,NULL);
INSERT INTO PERSON VALUES (148,'Trump','Ivanka','F','5/3/1985','222 White House Avenue','Cooma',2630,135);
INSERT INTO PERSON VALUES (149,'Trump','Eric','M','3/12/1975','222 White House Avenue','Cooma',2630,135);
INSERT INTO PERSON VALUES (150,'Gates','Bill','M','5/3/1975','2 Rosey Lane','Cooma',2630,NULL);
INSERT INTO PERSON VALUES (151,'Bucket','Eric','M','3/1/1985','11 Oserey Avenue','Cooma',2630,NULL);
REM*******************************************************
REM STAFF TABLE
REM nursing services will not be charged to the patients
REM*******************************************************
INSERT INTO STAFF VALUES (103,'1/1/2009','Surgeon',4525,NULL);
INSERT INTO STAFF VALUES (110,'5/5/2009','Surgeon',5600,NULL);
INSERT INTO STAFF VALUES (118,'1/5/2016','Surgeon',7890,NULL);
INSERT INTO STAFF VALUES (111,'1/1/2009','Anaesthetist',5900,NULL);
INSERT INTO STAFF VALUES (112,'3/3/2009','Anaesthetist',4788,NULL);
INSERT INTO STAFF VALUES (114,'1/1/2009','Senior Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (115,'2/2/2016','Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (116,'3/3/2014','Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (125,'23/3/2014','Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (135,'1/1/2019','Senior Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (136,'2/2/2016','Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (138,'23/3/2019','Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (139,'23/3/2020','Senior Nurse',NULL,NULL);
INSERT INTO STAFF VALUES (150,'1/11/2019','Anaesthetist',6900,NULL);
INSERT INTO STAFF VALUES (151,'31/1/2019','Anaesthetist',5900,NULL);
REM***********************
REM WARD TABLE
REM***********************
INSERT INTO WARD VALUES ('C','Covid Bay',90,'31/12/2019',NULL,150.00);
INSERT INTO WARD VALUES ('A','Abraham',80,'1/12/2015','12/05/2011',350.00);
INSERT INTO WARD VALUES ('N','Nightingale',50,'1/12/2017','12/05/2012',450.00);
INSERT INTO WARD VALUES ('F','Flemming',75,'15/11/2009',NULL,230.00);
INSERT INTO WARD VALUES ('L','Lister',80,'1/1/2009','20/12/2013',200.00);
INSERT INTO WARD VALUES ('P','Pasteur',60,'1/12/2009','12/12/2011',250.00);
REM***********************
REM OPERATION_TYPE TABLE
REM***********************
INSERT INTO OPERATION_TYPE VALUES ('LO','Lobotomy',700.00,10);
INSERT INTO OPERATION_TYPE VALUES ('CS','Caesarean',5700.00,3);
INSERT INTO OPERATION_TYPE VALUES ('CT','Cataract',670.00,1);
INSERT INTO OPERATION_TYPE VALUES ('AP','Appendicectomy',500.00,5);
INSERT INTO OPERATION_TYPE VALUES ('HB','Heart Bypass',2000.00,14);
INSERT INTO OPERATION_TYPE VALUES ('HT','Heart Transplant',5000.00,30);
INSERT INTO OPERATION_TYPE VALUES ('HY','Hysterectomy',800.00,7);
INSERT INTO OPERATION_TYPE VALUES ('LA','Leg Amputation',1500.00,10);
INSERT INTO OPERATION_TYPE VALUES ('TS','Tonsillectomy',700.00,7);
INSERT INTO OPERATION_TYPE VALUES ('LP','Laparoscopy',500.00,1);
INSERT INTO OPERATION_TYPE VALUES ('AR','Arthroscopy ',700.00,17);
REM***********************
REM ADMISSION TABLE
REM***********************
INSERT INTO ADMISSION VALUES (205,101,'2/2/2011','HB',114,'P','21/2/2011');
INSERT INTO ADMISSION VALUES (275,101,'1/9/2010','HY',115,'L','1/11/2010');
INSERT INTO ADMISSION VALUES (286,101,'3/5/2016','AR',116,'A','3/7/2016');
INSERT INTO ADMISSION VALUES (303,101,'3/4/2018','LA',125,'F', '13/5/2018');
INSERT INTO ADMISSION VALUES (298,103,'23/1/2016','TS',114,'L','24/04/2016');
INSERT INTO ADMISSION VALUES (299,103,'23/3/2018','AP',114,'L','23/4/2018');
INSERT INTO ADMISSION VALUES (305,103,'23/4/2018','HT',125,'F','29/5/2018');
INSERT INTO ADMISSION VALUES (321,103,'13/8/2018','AR',125,'F', '23/10/2018');
INSERT INTO ADMISSION VALUES (283,105,'3/12/2015','AR',116,'A','5/12/2015');
INSERT INTO ADMISSION VALUES (278,105,'1/1/2011','HB',115,'P','30/1/2011');
INSERT INTO ADMISSION VALUES (307,105,'3/4/2018','TS',125,'F', '13/5/2018');
INSERT INTO ADMISSION VALUES (276,106,'24/8/2010','LA',114,'P','15/9/2010');
INSERT INTO ADMISSION VALUES (287,106,'3/5/2016','TS',114,'A','3/6/2016');
INSERT INTO ADMISSION VALUES (274,109,'1/9/2019','AP',114,'P','9/9/2019');
INSERT INTO ADMISSION VALUES (288,109,'23/5/2016','LO',114,'F','3/07/2016');
INSERT INTO ADMISSION VALUES (301,112,'13/4/2018','AP',125,'F','16/4/2018');
INSERT INTO ADMISSION VALUES (304,112,'23/4/2019','LO',114,'L','23/5/2019');
INSERT INTO ADMISSION VALUES (279,113,'3/9/2010','TS',115,'F','10/9/2010');
INSERT INTO ADMISSION VALUES (284,113,'3/12/2015','HY',116,'A','03/01/2016');
INSERT INTO ADMISSION VALUES (285,113,'3/5/2016','HT',116,'A','3/6/2016');
INSERT INTO ADMISSION VALUES (300,113,'23/4/2018','AR',114,'L','25/6/2018');
INSERT INTO ADMISSION VALUES (306,113,'13/8/2018','AP',125,'L', '13/9/2018');
INSERT INTO ADMISSION VALUES (277,114,'20/9/2010','AP',115,'P','30/9/2010');
INSERT INTO ADMISSION VALUES (289,115,'11/4/2016','LO',114,'L','3/6/2016');
INSERT INTO ADMISSION VALUES (290,115,'5/7/2016','TS',114,'L','3/09/2016');
INSERT INTO ADMISSION VALUES (308,115,'23/3/2018','AR',114,'L','25/3/2018');
INSERT INTO ADMISSION VALUES (280,117,'13/9/2010','AP',115,'F','25/9/2010');
INSERT INTO ADMISSION VALUES (281,117,'3/9/2014','HB',116,'A','21/9/2014');
INSERT INTO ADMISSION VALUES (282,117,'3/12/2015','LA',116,'A','14/12/2015');
INSERT INTO ADMISSION VALUES (309,126,'23/3/2018','TS',125,'L', '13/5/2018');
INSERT INTO ADMISSION VALUES (310,127,'13/5/2018','AP',125,'L', '28/5/2018');
INSERT INTO ADMISSION VALUES (311,124,'3/5/2018','LO',125,'A', '23/5/2018');
INSERT INTO ADMISSION VALUES (312,127,'21/6/2019','LO',125,'L','22/8/2019');
INSERT INTO ADMISSION VALUES (313,124,'22/6/2019','AP',125,'A','22/7/2019');
INSERT INTO ADMISSION VALUES (314,109,'21/6/2019','LO',125,'L','22/7/2019');
INSERT INTO ADMISSION VALUES (315,126,'12/6/2019','AP',125,'A','22/9/2019');
INSERT INTO ADMISSION VALUES (316,114,'22/7/2019','HB',125,'A','12/12/2019');
INSERT INTO ADMISSION VALUES (318,128,'3/5/2019','LA',116,'A','4/6/2019');
INSERT INTO ADMISSION VALUES (319,129,'23/3/2019','TS',125,'L', '13/4/2019');
INSERT INTO ADMISSION VALUES (320,130,'3/5/2019','LA',116,'F','4/6/2019');
INSERT INTO ADMISSION VALUES (328,119,'3/3/2019','TS',115,'N', '3/4/2019');
INSERT INTO ADMISSION VALUES (322,132,'3/5/2019','LA',116,'A','4/6/2019');
INSERT INTO ADMISSION VALUES (323,133,'23/3/2019','TS',125,'L', '13/4/2019');
INSERT INTO ADMISSION VALUES (324,131,'3/5/2018','LA',116,'F','4/5/2018');
INSERT INTO ADMISSION VALUES (325,118,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (326,102,'3/5/2018','LA',116,'F','4/5/2018');
INSERT INTO ADMISSION VALUES (327,104,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (339,107,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (329,110,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (330,111,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (331,116,'3/6/2019','TS',115,'P', '3/7/2019');
INSERT INTO ADMISSION VALUES (332,121,'21/6/2019','TS',125,'L','22/7/2019');
INSERT INTO ADMISSION VALUES (333,123,'22/7/2019','AP',125,'A','22/9/2019');
INSERT INTO ADMISSION VALUES (334,134,'21/8/2019','AP',115,'L','22/12/2019');
INSERT INTO ADMISSION VALUES (335,128,'12/8/2020','AP',115,'A',NULL);
INSERT INTO ADMISSION VALUES (336,125,'22/7/2020','HB',115,'A',NULL);
INSERT INTO ADMISSION VALUES (337,120,'21/8/2020','AP',116,'L',NULL);
INSERT INTO ADMISSION VALUES (338,130,'22/7/2020','AP',125,'N',NULL);
INSERT INTO ADMISSION VALUES (340,131,'22/8/2020','AP',125,'N',NULL);
INSERT INTO ADMISSION VALUES (341,122,'22/8/2020','AP',125,'N',NULL);
INSERT INTO ADMISSION VALUES (490,139,'11/8/2020','AP',125,'F',NULL);
INSERT INTO ADMISSION VALUES (491,140,'7/9/2020','AP',138,'F',NULL);
REM***********************
REM OPERATION TABLE
REM***********************
INSERT INTO OPERATION VALUES (317,'HB',205,'4/2/2011',110,111);
INSERT INTO OPERATION VALUES (355,'LA',276,'25/8/2010',103,111);
INSERT INTO OPERATION VALUES (363,'AP',276,'3/9/2010',103,111);
INSERT INTO OPERATION VALUES (360,'AP',277,'22/9/2010',103,111);
INSERT INTO OPERATION VALUES (361,'AP',274,'2/9/2010',103,111);
INSERT INTO OPERATION VALUES (362,'HT',275,'3/9/2010',110,112);
INSERT INTO OPERATION VALUES (364,'AP',279,'3/9/2010',103,111);
INSERT INTO OPERATION VALUES (365,'AP',280,'6/9/2010',103,111);
INSERT INTO OPERATION VALUES (366,'HB',281,'6/9/2014',103,111);
INSERT INTO OPERATION VALUES (367,'HY',284,'6/12/2015',103,111);
INSERT INTO OPERATION VALUES (368,'LO',285,'6/5/2016',118,112);
INSERT INTO OPERATION VALUES (369,'AP',286,'6/5/2016',118,112);
INSERT INTO OPERATION VALUES (370,'TS',287,'7/5/2016',118,112);
INSERT INTO OPERATION VALUES (371,'LA',288,'26/5/2016',110,111);
INSERT INTO OPERATION VALUES (372,'LO',289,'16/4/2016',110,111);
INSERT INTO OPERATION VALUES (373,'TS',290,'6/5/2016',110,111);
INSERT INTO OPERATION VALUES (381,'TS',298,'26/2/2016',110,111);
INSERT INTO OPERATION VALUES (382,'AP',299,'26/3/2018',110,111);
INSERT INTO OPERATION VALUES (383,'TS',300,'26/5/2018',110,111);
INSERT INTO OPERATION VALUES (384,'TS',309,'16/4/2018',110,111);
INSERT INTO OPERATION VALUES (385,'LO',309,'26/3/2018',110,111);
INSERT INTO OPERATION VALUES (386,'AP',310,'18/5/2018',110,111);
INSERT INTO OPERATION VALUES (387,'AP',311,'4/5/2018',110,111);
INSERT INTO OPERATION VALUES (388,'LO',311,'11/5/2018',110,111);
INSERT INTO OPERATION VALUES (389,'AP',315,'13/6/2019',118,111);
INSERT INTO OPERATION VALUES (390,'HB',316,'23/7/2019',118,111);
INSERT INTO OPERATION VALUES (391,'LO',312,'22/6/2019',118,111);
INSERT INTO OPERATION VALUES (392,'HT',341,'28/8/2019',118,112);
INSERT INTO OPERATION VALUES (393,'HT',340,'27/8/2019',118,112);
INSERT INTO OPERATION VALUES (394,'LO',491,'26/4/2020',103,112);
REM***********************
REM OBSERVATION TABLE
REM***********************
INSERT INTO OBSERVATION VALUES (205,'2/2/2011',1500,'Temp',38,114);
INSERT INTO OBSERVATION VALUES (274,'4/9/2010',0601,'Temp',39,116);
INSERT INTO OBSERVATION VALUES (275,'1/9/2010',1400,'Pulse',64,115);
INSERT INTO OBSERVATION VALUES (275,'1/9/2010',1400,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (275,'3/9/2010',1800,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (275,'3/9/2010',2200,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (275,'4/9/2010',0610,'Pulse',82,116);
INSERT INTO OBSERVATION VALUES (275,'4/9/2010',0610,'Temp',38,116);
INSERT INTO OBSERVATION VALUES (277,'24/9/2010',0600,'Temp',39,115);
INSERT INTO OBSERVATION VALUES (284,'5/12/2015',0600,'Temp',39,115);
INSERT INTO OBSERVATION VALUES (284,'5/12/2015',0600,'Pulse',89,115);
INSERT INTO OBSERVATION VALUES (284,'6/12/2015',0600,'Temp',37,115);
INSERT INTO OBSERVATION VALUES (284,'6/12/2015',0600,'Pulse',87,115);
INSERT INTO OBSERVATION VALUES (285,'7/5/2016',0600,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (285,'8/5/2016',0600,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (285,'8/5/2016',0600,'Pulse',82,115);
INSERT INTO OBSERVATION VALUES (285,'9/5/2016',0600,'Temp',37,115);
INSERT INTO OBSERVATION VALUES (286,'7/5/2016',0600,'Temp',39,125);
INSERT INTO OBSERVATION VALUES (286,'8/5/2016',0600,'Temp',33,125);
INSERT INTO OBSERVATION VALUES (286,'8/5/2016',0600,'Pulse',86,125);
INSERT INTO OBSERVATION VALUES (286,'9/5/2016',0600,'Temp',36,125);
INSERT INTO OBSERVATION VALUES (287,'7/5/2016',0600,'Temp',35,115);
INSERT INTO OBSERVATION VALUES (287,'8/5/2016',0600,'Temp',37,115);
INSERT INTO OBSERVATION VALUES (287,'8/5/2016',0600,'Pulse',82,125);
INSERT INTO OBSERVATION VALUES (287,'9/5/2016',0600,'Temp',37,125);
INSERT INTO OBSERVATION VALUES (289,'19/5/2016',0600,'Temp',39,115);
INSERT INTO OBSERVATION VALUES (289,'20/5/2016',1400,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (289,'22/5/2016',0800,'Temp',37,115);
INSERT INTO OBSERVATION VALUES (289,'26/5/2016',0700,'Temp',37,115);
INSERT INTO OBSERVATION VALUES (289,'29/5/2016',0700,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (300,'23/4/2018',1400,'Pulse',74,115);
INSERT INTO OBSERVATION VALUES (300,'23/4/2018',1400,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (300,'23/4/2018',1800,'Temp',30,116);
INSERT INTO OBSERVATION VALUES (300,'23/4/2018',2200,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (300,'24/4/2018',0610,'Pulse',82,116);
INSERT INTO OBSERVATION VALUES (300,'24/4/2018',0610,'Temp',38,116);
INSERT INTO OBSERVATION VALUES (303,'13/4/2018',1400,'Pulse',64,125);
INSERT INTO OBSERVATION VALUES (303,'13/4/2018',1400,'Temp',38,125);
INSERT INTO OBSERVATION VALUES (303,'13/4/2018',1800,'Temp',30,125);
INSERT INTO OBSERVATION VALUES (303,'23/4/2018',2200,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (303,'23/4/2018',0610,'Pulse',82,116);
INSERT INTO OBSERVATION VALUES (303,'23/4/2018',0610,'Temp',38,116);
INSERT INTO OBSERVATION VALUES (311,'3/5/2018',1400,'Pulse',54,115);
INSERT INTO OBSERVATION VALUES (311,'4/5/2018',1400,'Temp',38,115);
INSERT INTO OBSERVATION VALUES (311,'3/5/2018',1800,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (311,'4/5/2018',2200,'Temp',41,116);
INSERT INTO OBSERVATION VALUES (311,'4/5/2018',1800,'Temp',39,116);
INSERT INTO OBSERVATION VALUES (311,'5/5/2018',0610,'Pulse',72,116);
INSERT INTO OBSERVATION VALUES (311,'5/5/2018',0610,'Temp',38,116);
INSERT INTO OBSERVATION VALUES (310,'13/5/2018',1400,'Pulse',84,125);
INSERT INTO OBSERVATION VALUES (310,'13/5/2018',1400,'Temp',28,125);
INSERT INTO OBSERVATION VALUES (310,'14/5/2018',1800,'Temp',60,125);
INSERT INTO OBSERVATION VALUES (310,'15/5/2018',2200,'Temp',40,116);
INSERT INTO OBSERVATION VALUES (310,'16/5/2018',0610,'Pulse',92,116);
INSERT INTO OBSERVATION VALUES (310,'16/5/2018',0610,'Temp',35,116);
INSERT INTO OBSERVATION VALUES (341,'22/8/2019',0610,'Temp',39,116);
INSERT INTO OBSERVATION VALUES (340,'25/8/2019',0610,'Temp',39,116);
INSERT INTO OBSERVATION VALUES (340,'25/8/2019',0610,'Pulse',75,116);
INSERT INTO OBSERVATION VALUES (340,'26/8/2019',0610,'Temp',37,116);
INSERT INTO OBSERVATION VALUES (340,'26/8/2019',0610,'Pulse',70,116);
INSERT INTO OBSERVATION VALUES (340,'27/8/2019',0610,'Pulse',68,116);
INSERT INTO OBSERVATION VALUES (340,'27/8/2019',0610,'Temp',37,116);
INSERT INTO OBSERVATION VALUES (340,'29/8/2019',0610,'Pulse',73,116);
INSERT INTO OBSERVATION VALUES (490,'17/4/2020',0600,'Temp',38,125);
INSERT INTO OBSERVATION VALUES (490,'18/4/2020',0600,'Temp',37,125);
INSERT INTO OBSERVATION VALUES (490,'19/4/2020',0600,'Temp',38,125);
...ANSWER
Answered 2021-Jun-03 at 16:53I'm assuming you don't really need a cross join of 'person' with 'person'. So I'm dropping that logic from the sources.
I don't have and Oracle instance to work with, but I believe the code below, which uses a case statement to achieve your conditional need, should work for you:
QUESTION
I'm trying to return the Min date based on criteria.
A B C D E F Frank 01/01/2014 Susan Susan 01/01/2018 Min 08/01/2010 Susan 12/01/2021 Max 12/01/2021 Susan Susan 08/01/2010The following formula works fine in cell F2 as long as there are no blanks in the date column B. If there are any blanks it returns 01/0/1900
=MIN(IF(A:A=E1,B:B))
I found this solution that ignores blanks but returns the Min date from the entire column, not based on any criteria.
=MIN(IF(B:B=0,"",B:B))
ANSWER
Answered 2021-Jun-01 at 19:34Thank you for the lucid and easily reproducible question. This should do the trick for you:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Frank
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page